Digital cardiac pacemaker with hysteresis

ABSTRACT

A programmable cardiac pacemaker pulse generator utilizing digital circuitry for controlling the provision of cardiac stimulating pulses. The pulse generator is capable of having the rate, the pulse width, the pulse amplitude, the refractory period, the sensitivity and the mode of operation programmed. In addition, the pulse generator can have the output inhibited and can respond to programming signals causing a threshold margin test to be performed, effects of closure of the reed switch overridden, a hysteresis function added and a high rate exceeding the normal upper rate limit programmed. Many of the programmable functions of the pulse generator can either be programmed on a permanent or a temporary basis. The pulse generator further includes means for signalling the acceptance of a programming signal, and means to reset the program acceptance circuit if extraneous signals are detected as programming signals. The program signal acceptance circuit performs several different checks on the detected programming signal including a parity check, an access code check and determining if the proper number of signals were transmitted within a given time. The timing circuit of the pulse generator includes a crystal clock oscillator and counter means for counting the clock pulses therefrom to determine the rate of the pacemaker. The pulse width of each pacemaker pulse is determined by using a volage controlled oscillator in place of the crystal oscillator to obtain energy compensation due to the battery voltage decreasing with time.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates to medical devices and more particularly animplantable cardiac pacemaker capable of being programmed in a varietyof different states.

2. Description of the Prior Art

The art of implantable cardiac pacemakers was first disclosed byGreatbatch in U.S. Pat. No. 3,057,356 entitled "Medical CardiacPacemaker", which issued in 1962. The device disclosed by Greatbatchincluded a relatively simple relaxation oscillator that generatedelectrical pulses at a fixed rate. These pulses were applied to theheart through a lead consisting of a conductor wire and an electrode tocause the heart to contract each time a pulse occurred. Since 1962, manyimprovements to cardiac pacemakers have occurred. These improvementsinclude increased sophistication to the circuitry, including theinclusion of a sense amplifier to interact with the oscillator inproviding stimulating pulses only when needed (the demand pacemaker),features to improve the reliability and longevity of pacemakers,improved packaging techniques, better power sources and improved leadsand conductors.

Another improvement which has occurred since Greatbatch first disclosedthe implantable cardiac pacemaker is means to allow the pacemaker to bereprogrammed after it has been implanted. In U.S. Pat. No. 3,805,796 inthe name of Reese Terry, Jr. et al, entitled "Implantable Cardiac PacerHaving Adjustable Operating Parameters", which issued in 1974, circuitryis disclosed to allow the rate of the pacemaker to be noninvasivelychanged after it has been implanted. The rate varies in response to thenumber of times a magnetically operable reed switch is closed. The Terryet al device operates by counting the number of times the reed switch isclosed and storing that count in a binary counter. Each stage of thecounter is connected to either engage or bypass one resistor in aserially connected resistor chain, which chain is a part of the RC timeconstant controlling the pacemaker rate.

The concept of the Terry et al device has been improved upon by theapparatus shown in U.S. Pat. No. 4,066,086 in the name of John M. Adamset al, entitled "Programmable Body Stimulator", which issued in 1978,and which discloses a programmable cardiac pacemaker that responds tothe application of radio frequency (RF) pulse bursts while a magneticfield held in close proximity to a magnetically operated reed switchincluded within the pacemaker package holds the reed switch closed. Inthe Adams et al circuit, again only the rate is programmable in responseto the number of RF pulse bursts applied. The use of radio frequencysignals to program cardiac pacemaker was first disclosed by Wingrove inthe U.S. Pat. No. 3,833,005 entitled "Compared Count DigitallyControlled Packemaker" which issued in 1974. The Wingrove device wascapable of having both the rate and pulse width programmed. However, nopacemaker has ever been described which is capable of having more thantwo parameters programmed or selected features or tests programmed oncommand. Such a pacemaker could be called a universally programmablepacemaker.

One area where cardiac pacing technology has lagged behind conventionalstate of electronic technology involves utilization of digitalelectrical circuits. One reason for this has been the high energyrequired to operate digital electronic circuits. However, with morerecent technology advances in complimentary metal oxide semiconductor(CMOS) devices fabricated on large scale integrated circuits, togetherwith the improvements of cardiac pacemaker batteries, digital electroniccircuits are beginning to be utilized in commercial pacemakers. Theinherent advantages of digital circuits are their accuracy, andreliability. Typically, the digital circuit is operated in response to acrystal oscillator which provides a very stable frequency over extendedperiods of time. There have been suggestions in the prior art forutilizing digital techniques in cardiac stimulators and pacemakers sinceat least 1966. For instance, see the article by Leo F. Walsh and E. NeilMoore, entitled "Digital Timing Unit for Programming BiologicalStimulators" in The American Journal of Medical Electronics, FirstQuarter, 1966, Pages 29 through 34. The first patent suggesting digitaltechniques is U.S. Pat. No. 3,557,796 in the name of John W. Keller,Jr., et al, and is entitled "Digital Counter Driven Pacer", which issuedin 1971. This patent discloses an oscillator driving a binary counter.When the counter reaches a certain count, a signal is provided whichcauses a cardiac stimulator pulse to be provided. At the same time thecounter is reset and again begins counting the oscillator pulses.Additionally, in the Keller et al patent, there is disclosed the digitaldemand concept, in which the counter is reset upon the sensing of anatural heartbeat, and the digital refractory concept, in which theoutput is inhibited for any certain time after the provision of acardiac stimulating pulse or the sensing of a natural beat.

As mentioned above, digital programming techniques are shown in both theTerry et al U.S. Pat. No. 3,805,796 and the Wingrove U.S. Pat. No.3,833,005. Wingrove additionally discloses digital control circuitry forcontrolling the rate of the stimulating pulses by providing a resettablecounter to continually count up to a certain value that is comparedagainst a value programmed into a storage register. The Wingrove patentalso shows provisions for adjusting the output pulse width by switchingthe resistance in the RC circuit which controls the pulse width.

Other patents disclosing digital techniques useful in cardiac pacinginclude U.S. Pat. Nos. 3,631,860 in the name of Michael Lopin entitled"Variable Rate Pacemaker, Counter-Controlled, Variable Rate Pacer"; U.S.Pat. No. 3,857,399 in the name of Fred Zacouto entitled "Heart Pacer";U.S. Pat. No. 3,865,119 in the name of Bengt Svensson and Gunnar Wallinentitled "Heartbeat Accentuated with Controlled Pulse Amplitude"; U.S.Pat. No. 3,870,050 in the name of Wilson Greatbatch entitled "DemandPacer"; U.S. Pat. No. 4,038,991 in the name of Robert A. Waltersentitled "Cardiac Pacer with Rate Limiting Means"; U.S. Pat.No.4,043,347 in the name of Alexis M. Renirie entitled "Multiple-FunctionDemand Pacer with Low Current Drain"; U.S. Pat. No. 4,049,003 in thename of Robert A. Walters et al entitled "Digital Cardiac Pacer"; U.S.Pat. No. 4,049,004 in the name of Robert A Walters entitled "ImplantableDigital Cardiac Pacer Having Externally Selectable Operating Parametersand One Shot Digital Pulse Generator for Use Therein"; and U.S. Pat. No.4,074,720 in the name of Franklin I. Malchman et al entitled "CardiacPacer with Rate Runaway Protection".

SUMMARY OF THE INVENTION

One technique of cardiac pacing which is well known in the prior artutilizes the concept of hysteresis. According to the concept, thepacemaker generates artificial stimulating pulses at a constant rate solong as no natural cardiac activity is sensed. However, in the event anatural heartbeat is sensed, circuitry within the pacemaker causes alonger period of time to elapse relative to the time between theconstant rate cardiac stimulating pulses before another stimulatingpulse is provided. Once the first artificial stimulating pulse isprovided, additional artificial stimulating pulses are provided at theconstant rate. Thus, by utilizing the hysteresis feature, the heart isgiven additional time to provide a natural beat if it previously hadbeen providing natural beats. Once artificial stimulation becomesnecessary, the artificial stimulation occurs at the higher rate. For amore complete description of the hysteresis feature in the prior art,reference is made to U.S. Reissue Pat. No. 28,003 in the name of DavidW. Gobeli entitled "Electronic Demand Heart Pacemaker with DifferentPacing and Standby Rates". As will be noted from the Gobeli patent, thehysteresis feature is incorporated with resistor and capacitor timingcircuits interconnected with the oscillator. Desirably, these componentsshould be replaced with digital circuits in order to eliminatecomponents prone to failure, as well as the space required in thepacemaker package containing these components.

In accordance with one preferred aspect of this invention, there isprovided a demand cardiac pacemaker pulse generator comprising a pair ofoutput terminals adapted to providing signals to and receiving signalsfrom the heart, sense amplifier means responsive to the signal receivedby the output terminals from the heart for providing a signalmanifesting the occurrence of natural heart activity and digital timingmeans responsive to the sense amplifier signal for providing an outputsignal to the output terminals a controlled time after one of either thesense amplifier signal is provided or the preceding signal providedthereby is provided. In addition, there is provided bistable meanscapable of being triggered to either a first or second state, thebistable means being triggered to said first state in response to saidsense amplifier means signals. The digital timing means responds to thebistable means being in the first state by controlling the controlledtime to being a longer time and the digital timing means response to thebistable means being in the second state by controlling the controlledtime to be a shorter time. The bistable means is triggered from thefirst state to the second state after the longer time after theprovision of the last sense amplifier signal.

BRIEF DESCRIPTION OF THE DRAWINGS

There is hereafter described one preferred embodiment of the subjectinvention with reference being made to the following Figures in which:

FIG. 1 shows the entire system of a programmer and implanted cardiacpacemaker pulse generator;

FIG. 2 shows the type of code provided from the programmer to the pulsegenerator;

FIG. 3 shows in block format, one programming word and the variousportions thereof;

FIG. 4 shows an interconnect diagram between the digital and analogcircuit portions of the present embodiment and the various signalsprovided between these two portions;

FIG. 5 shows the arrangement of FIGS. 5A, 5B and 5C, which in turn show,in block format, the digital circuitry portion of the subject invention;and

FIG. 6 shows the arrangement of FIGS. 6A through 6N, which in turn showa more detailed circuit diagram, the digital circuitry of the subjectinvention.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

Referring now to FIG. 1, the entire programmable pacemaker system 10 isshown and includes the programmer 12, programming head 14, and the pulsegenerator 16. Signals generated by pulse generator 16 are appliedthrough leads 18 to the heart (not shown) to cause the contractionthereof. The type of signals applied from pulse generator 16 throughleads 18, as well as the response of the heart to these signals, is wellknown in the art and will not be discussed herein.

It should be noted, however, that in the embodiment described herein,pulse generator 16 is of the implantable type and as such is placedbeneath the surface of the skin 20. However, nothing herein should beconstrued as limiting the inventions described herein as pertainingsolely to implantable type pulse generators.

Programmer 12 may be any type of radio frequency (RF) burst signalgenerator which is designed to provide a train of radio frequencysignals of the type hereafter described with respect to FIGS. 2 and 3.Programmer 12 includes the plurality of operator depressable keys on itsface. These keys include parameter keys 22, numeric keys 24, andfunction keys 26. In addition, a display 28 is included so that theoperator can view a display of the depressed keys.

In order to program pulse generator 16, selected parameter, numeric andfunction keys are depressed. The parameter keys include keys forprogramming the rate, pulse width and magnitude of the cardiacstimulating pulse, the sensitivity of the amplifier, the refractoryperiod, as well as causing pulse generator 16 to operate with or withouta hysteresis function, or either in the ventricular-synchronous (R-sync)or the ventricular-inhibited (demand) mode, or either in theasynchronous or demand node. Additionally, there are parameter keys tocause a threshold check to be performed and to inhibit the operation ofpulse generator 16.

Numeric keys 24 are depressed to cause the programmer 12 to generatesignals manifesting a particular value to which the selected parameteris to be programmed. For instance, if the rate parameter button 22 isdepressed, it is necessary to depress keys manifesting the desired valueof rate on the numeric keys 24.

Function keys 26 are utilized to cause programmer 12 to program pulsegenerator 16 either permanently or temporarily. In addition, one of thefunction keys is utilized when inhibiting pulse generator 13 in a mannersuch that it must be maintained depressed to cause continuous inhibitprogramming signals to be sent from programmer 12 through head 14 topulse generator 16 in order to maintain the inhibited condition.

In order to program pulse generator 16, it is necessary that head 14 beplaced at an appropriate position directly above pulse generator 16 andthat a series of radio frequency burst signals be applied fromprogrammer 12 through wire 30 to head 14. Head 14 includes a permanentmagnet of sufficient size to cause a magnetically actuated reed switchwithin pulse generator 16 to be closed. The closure of the reed switchin pulse generator 16 allows circuitry within pulse generator 16 todetect and process the RF signals applied over wire 30 to head 14.

Referring now to FIGS. 2 and 3, the type of data generated by programmer12 will be described. Each different programming operation requires thetransmission by programmer 12 of a thirty-two binary digit (bit) wordwith each bit being either a logic "1" or a logic "0" binary number. Theactual signals generated by programmer 12 are bursts of radio frequencysignals at a frequency of approximately 175 kilohertz. For each word tobe generated by programmer 12, thirty-three virtually identical RFbursts are applied. Each bit is in turn defined by the real timeseparation between successive RF bursts. In the preferred embodimentdescribed herein a relatively long time will be defined as a logic "1"bit and a relatively short time will be defined as a logic "0" bit. Thepulse burst duration may be approximately 0.35 msec, the relatively longtime may be approximately 2.2 msec and the relatively short time may beapproximately 1.0 msec. Thus, for example, as shown in FIG. 2, anarbitrary series of nine RF bursts are shown in the upper graph. Thesenine bursts have been processed into pulses by RF demodulation circuitrywithin pulse generator 16 and are seen as a series of pulses in thelower graph of FIG. 2. Beneath the lower graph of FIG. 2 is a series ofeight binary numbers placed at the beginning of each of the secondthrough ninth pulses. Each of these numbers represent the bit manifestedby the duration between that pulse burst and the one preceding it. Thus,for the signal shown in the upper graph of FIG. 2, the binary code wouldbe "10010100". This binary number can be written in an octal numbersystem as "224" in a conventional manner. The first number of the octalnumber represents the first two most significant bits, the middle numberof the octal number represents the next three bits and the last numberof the octal number represents the last three least significant bits.Hereafter for convenience, all programming codes will be manifested inthe octal number system.

Referring to FIG. 3, the thirty-two bit words generated by programmer 12to pulse generator 16 will be described. The thirty-two bit wordsconsists of four parts, each of which is eight bits in length. Thesefour parts are parameter code, data code, access code and parity codeand are generated in that order, least significant bit first. The firstthree bits of the eight bit parameter code are not used whatsoever andare always generated as logic "0" bits. The fourth bit of the parametercode is either a logic "1" or a logic "0" bit, which respectivelymanifests either a temporary or permanent programming command and thelast four of the parameter bits represent the code for the particularone of the function keys 26 depressed by the operator in operatingprogrammer 12.

The data code portion of the programming word consists of eight bitswhich define a particular value for the parameter selected.

Following the data portion of the programming word is the eight bitaccess word which always consists of the octal code "227". This word, aswill be explained hereafter with respect to FIGS. 5 and 6, is utilizedto start the process of programming pulse generator 16. One purpose forthe access word is to prevent extraneous signals which may be detectedby pulse generator 16 from causing a reprogramming.

The final eight bit portion of the programming words consists of aneight bit parity code which is generated to provide proper verticalparity based on the parameter and data portions of the word. Again theparity portion is used as a check to prevent extraneous or undesirableprogramming of pulse generator 16.

Referring to FIG. 4, an interconnect diagram between the digital andanalog circuitry included in pulse generator 16 is shown. In general,the analog circuit 42 consists of various separate electrical systems.These systems include a battery monitor, a crystal clock, a voltagecontrol oscillator clock, a QRS sensing amplifier, output circuitryincluding rate limit circuitry and a voltage doubler, and an RFdemodulator. Each of these analog systems are well known in the art andwill not be described in structural detail herein. However, for acomplete description of certain of these circuits, reference is made tothe following patent applications, filed even date herewith: Ser. No.967,812, entitled "Demand Cardiac Pacemaker Having Reduced PolarityDisparity" invented by Jerome T. Hartlaub and Ray S. McDonald, and Ser.No. 957,828 entitled "Cardiac Pacemaker Having A Rate Limit" invented byDavid L. Thompson Yong Sang Lee and Ray S. McDonald.

The digital circuit 40 includes all of the digital logic necessary tocause a programming change, memory to store the digital code manifestingthe desired values for the programmed parameters and digital timingmeans for causing pulses to be generated from pulse generator 16 in theprogrammed manner. A more detailed description of digital circuit 40 isgiven in FIGS. 5A, 5B and 5C and still more detailed description isgiven with respect to FIGS. 6A through 6N.

The electrical interconnect diagram shown in FIG. 4 also shows battery44, which may be a conventional lithium-iodide battery generating +V, orapproximately 2.8, volts, connected between a source of referencepotential, such as ground, and each of the digital and analog circuits40 and 42. In addition, each of digital and analog circuits 40 and 42are connected to ground.

A magnetic field actuated reed relay switch 46 is connected between thepositive side of battery 44 and each of digital and analog circuits 40and 42 respectively. Two outputs, 48 and 50, are provided from analogcircuit 42 and these represent signals applied to the conventional leadas used with a cardiac pacemaker. Output 50 may consist only of theouter metal casing of the pulse generator 16 or it may be a second wirewithin the lead system, depending on the type of leads selected. Output48 is coupled through a capacitor 52 to analog circuit 42 and to theheart (not shown). In addition, a pair of diodes 54 and 56 having theiranodes coupled together and their cathodes coupled to outputs 48 and 50respectively are provided. Diodes 54 and 56 in the presence of largeextraneous signals such as are caused by electrocautery function in aconventional manner to prevent damage to circuitry included in pulsegenerator 16.

Whenever reed switch 46 is closed as a result of a magnet, such as isincluded in head 14, being placed in close proximity with pulsegenerator 16, a +V volts, or a logic "1" REED signal, is applied to bothdigital circuit 40 and analog circuit 42. When head 14 is removed reedswitch 46 opens and a ground, or logic "0" signal is applied to digitalcircuit 40 and analog circuit 42. Analog circuit 42 provides the XTAL,VCO, SENSE, RATE LIMIT, BATTERY and DATA signals to digital circuit 40.Digital circuit 40 provides the VCO ENABLE, SENSITIVITY, BLANK,RECHARGE, DOUBLE, and SINGLE signals to analog circuit 42.

As mentioned above, the REED signal is a logic "1" whenever reed switch46 is closed and a logic "0" whenever reed switch 46 is open, asnormally would be the case. The XTAL signal is a generally square wavepulse signal occurring at a frequency of 32,768 hertz and the VCO signalis a square wave pulse signal having a frequency of 40,000 hertzwhenever the voltage of battery 44 is equal to 2.8 volts. As the voltageof battery 44 decreases with time, the frequency of the VCO signal willalso decrease according to the formula F_(VCO) =5.92×(V-0.2)² where V isthe actual voltage provided by battery 44. As will be explainedhereafter, the VCO signal used in providing timing to determine theexact width of the pulse provided by pulse generator 16. In order tomaintain a constant energy of the pulse, it is necessary that the pulseincrease in width as the voltage from battery 44 decreases. Thus, a VCO,which provides the decreasing frequency with decreasing voltage, isutilized.

The VCO ENABLE signal provided from digital circuit 40 to analog circuit42 is normally logic "1". However, at the time the stimulating pulse isto be provided, the VCO ENABLE signal becomes logic "0" and the VCO isenabled to begin providing pulses. The VCO ENABLE signal remains logic"0" until after the stimulating pulse has been provided, at which timeit returns to logic "1" and the VCO becomes disabled.

The SENSE signal is provided from the output of the sense amplifier as anormally logic "1" signal which becomes a logic "0" pulse signal eachtime the sense amplifier senses a naturally occurring QRS signal. TheSENSITIVITY signal is a three state digital signal which may be logic"1", logic "0" or floating and is provided directly from the memoryincluded in digital circuit 40. The state of the SENSITIVITY signalindicates the sensitivity that the sense amplifier is to assume.

The BLANK signal provided from digital circuit 40 is a normally logic"1" signal which becomes logic "0" for approximately 100 msec followingthe provision of a stimulating pulse from pulse generator 16 or thesensing of a natural QRS complex. The BLANK signal is used to preventthe sense amplifier within analog circuit 42 from sensing any signalsduring the 100 msec time interval and to allow the components within thesensing amplifier to reset themselves after sensing a signal.

The RECHARGE signal is a normally logic "0" pulse signal which becomeslogic "1" for approximately 7.8 msec after the stimulating pulse hasbeen provided or a natural QRS complex sensed. The purpose of theRECHARGE signal is to open a switch and allow a capacitor in the voltagedoubler portion of analog circuit 42 to become quickly recharged. TheDOUBLE signal and the SINGLE signal provided from digital circuit 40 toanalog circuit 42 respectively cause either a stimulation pulse, havinga magnitude of twice the value of the voltage provided by battery 44 ora stimulation pulse having a magnitude equal to the value of the voltageprovided by battery 44 to be provided between outputs 48 and 50.Further, the DOUBLE or SINGLE signals are pulses having a pulse widthequal to the desired pulse width of the stimulating signal to beprovided between outputs 48 and 50.

The RATE LIMIT signal provided from analog circuit 42 to digital circuit40 is a normally logic "0" signal which becomes logic "1" after theprovision of the stimulation pulse for 462 msec to set an upper ratelimit of 130 pulses per minute for pulse generator 16. The BATTERYsignal applied from analog circuit 42 to digital circuit 40 is a logic"1" signal as long as the voltage provided from battery 44 is above acertain minimum level of, for instance, 2.0 volts and is a logic "0"signal whenever the voltage from battery 44 falls below 2.0 volts.

The DATA signal from analog circuit 42 to digital circuit 40 is a pulsesignal going from logic "0" to logic "1", similar to that shown in thelower graph of FIG. 2, that is, the signal is at a logic "1" levelwhenever a pulse burst is being provided by programmer 12 and at a logic"0" level between the time pulse bursts are provided. As mentionedabove, each time pulse generator 16 is programmed, 33 pulses, defining32 bits, are applied from the analog circuit 42 over the DATA line todigital circuit 40. These pulses are provided from the RF demodulatorportion of analog circuit 42 in a known manner.

The parameter portion of the DATA signal defines one of elevenparameters to be modified and whether that modification is to be in atemporary or permanent manner, if that choice is available. The elevenparameters are inhibit, refractory, hysteresis operation,asynchronous/demand operation, pulse width, high rate, threshold check,normal rate, R-sync/demand operation, sensitivity and output voltagevalue. Of the above eleven parameters, the inhibit, high rate, andthreshold check parameters can only be done in a temporary mode andhysteresis can only be done in the permanent mode. All of the others caneither be permanent or temporary. As will be described hereafter in moredetail, the temporary mode of programming causes pulse generator 16 tobe programmed for as long as head 14 is positioned over pulse generator16 to maintain the reed switch 46 closed or until another programmingword is provided. Upon the opening of reed switch 46 or the transmissionof another programming word, the original conditions programmed intopulse generator 16 will again control unless, of course, the newprogramming word modifies that condition.

Reference Table I set out below indicates the eleven differentparameters which can be varied and for each the parameter code foreither a temporary parameter change or for a permanent parameter change,and the different data values which can be selected and the code whichshould be included in the data portion of programming signal toaccomplish that data change. It should be noted that all temporary andpermanent parameter codes and data codes are in the octal number systemto conveniently manifest an eight bit binary number with 3 digits. Italso should be noted that numbers in the data value column are decimalnumbers.

                                      TABLE I                                     __________________________________________________________________________    PROGRAMMING                                                                   PARAMETER CODES AND VALUE CODES                                                         TEMP.                                                                              PERM.             DATA                                         PARAMETER CODE CODE DATA VALUE   CODE                                         __________________________________________________________________________    INHIBIT   010  --   Always       377                                          REFRACTORY                                                                              030  020  220 msec     000                                                              325 msec     001                                                              400 msec     002                                                              Asynchronous 003                                          HYSTERESIS                                                                              --   060  No Hysteresis                                                                              000                                                              40 BPM Lower Limit                                                                         001                                                              50 BPM Lower Limit                                                                         002                                                              60 BPM Lower Limit                                                                         003                                          ASYN./DEMAND                                                                            110  100  Demand Mode  000                                                              Asynchronous Mode                                                                          001                                          PULSE WIDTH                                                                             130  120   50 Microsecond BOL                                                                        000                                                              100 Microsecond BOL                                                                        001                                                              150 Microsecond BOL                                                                        002                                                              200 Microsecond BOL                                                                        003                                                              250 Microsecond BOL                                                                        004                                                              .            .                                                                .            .                                                                3150 Microsecond BOL                                                                       076                                                              3200 Microsecond BOL                                                                       077                                          HIGH RATE 170  --   150 nominal (149.4                                                            actual)      000                                                              155 (155.5) PPM                                                                            376                                                              160 (158.7) PPM                                                                            375                                                              165 (165.6) PPM                                                                            373                                                              170 (169.3) PPM                                                                            372                                                              175 (173.2) PPM                                                                            371                                                              180 (181.4) PPM                                                                            367                                                              185 (185.8) PPM                                                                            367                                                              190 (190.5) PPM                                                                            365                                                              195 (195.4) PPM                                                                            364                                                              200 (200.5) PPM                                                                            363                                                              205 (205.9) PPM                                                                            362                                                              210 (211.6) PPM                                                                            361                                                              215 (217.7) PPM                                                                            360                                                              220 (217.7) PPM                                                                            360                                                              225 (224.1) PPM                                                                            357                                                              230 (230.9) PPM                                                                            356                                                              235 (238.1) PPM                                                                            355                                                              240 (238.1) PPM                                                                            355                                                              245 (245.8) PPM                                                                            354                                                              250 (254.0) PPM                                                                            353                                                              260 (262.0) PPM                                                                            352                                                              270 (272.1) PPM                                                                            351                                                              280 (282.2) PPM                                                                            350                                                              290 (293.0) PPM                                                                            347                                                              300 (304.7) PPM                                                                            346                                                              310 (304.7) PPM                                                                            346                                                              320 (317.4) PPM                                                                            345                                                              330 (331.2) PPM                                                                            344                                                              340 (346.3) PPM                                                                            343                                                              360 (362.8) PPM                                                                            342                                                              380 (380.9) PPM                                                                            341                                                              400 (400.9) PPM                                                                            340                                          THRESHOLD                                                                     CHECK     210  --   50 Microsecond BOL                                                                         000                                                              100 Microsecond BOL                                                                        001                                                              150 Microsecond BOL                                                                        002                                                              200 Microsecond BOL                                                                        003                                                              250 Microsecond BOL                                                                        004                                                              .            .                                                                .            .                                                                .            .                                                                3150 Microsecond BOL                                                                       076                                                              3200 Microsecond BOL                                                                       077                                          RATE      230  220  30 (30.0)    313                                                              31 (31.0)    303                                                              32 (32.0)    273                                                              33 (33.0)    264                                                              34 (34.0)    255                                                              35 (35.0)    247                                                              36 (35.9)    241                                                              37 (37.0)    233                                                              38 (37.9)    226                                                              39 (39.1)    220                                                              40 (39.9)    214                                                              41 (41.0)    207                                                              42 (42.1)    202                                                              43 (43.0)    176                                                              44 (44.0)    172                                                              45 (45.1)    166                                                              46 (45.9)    163                                                              47 (47.0)    157                                                              48 (47.9)    154                                                              49 (48.9)    151                                                              50 (50.1)    145                                                              51 (51.1)    142                                                              52 (51.8)    140                                                              53 (52.9)    135                                                              54 (54.0)    132                                                              55 (54.8)    130                                                              56 (56.0)    125                                                              57 (56.9)    123                                                              58 (58.2)    120                                                              59 (59.1)    116                                                              60 (60.0)    114                                                              61 (61.0)    112                                                              62 (62.0)    110                                                              63 (63.0)    106                                                              64 (64.0)    104                                                              65 (65.1)    102                                                              66 (66.3)    100                                                              67 (66.8)    077                                                              68 (68.0)    075                                                              69 (69.3)    073                                                              70 (69.9)    072                                                              71 (71.2)    070                                                              72 (71.9)    067                                                              73 (73.3)    065                                                              74 (74.0)    064                                                              75 (74.7)    063                                                              76 (76.2)    061                                                              77 (77.0)    060                                                              78 (77.8)    057                                                              79 (79.4)    055                                                              80 (80.2)    054                                                              81 (81.1)    053                                                              82 (81.9)    052                                                              83 (82.8)    051                                                              84 (83.7)    050                                                              85 (84.7)    047                                                              86 (85.6)    046                                                              87 (86.6)    045                                                              88 (87.6)    044                                                              89 (88.6)    043                                                              90 (89.7)    042                                                              91 (90.7)    041                                                              92 (91.8)    040                                                              93 (92.9)    037                                                              94 (94.1)    036                                                              95 (95.3)    035                                                              96 (96.5)    034                                                              97 (96.5)    034                                                              98 (97.7)    033                                                              99 (99.0)    032                                                              100 (100.3)  031                                                              101 (101.6)  030                                                              102 (101.6)  030                                                              103 (103.0)  027                                                              104 (104.4)  026                                                              105 (104.4)  026                                                              106 (105.8)  025                                                              107 (107.3)  024                                                              108 (107.3)  024                                                              109 (108.9)  023                                                              110 (110.4)  022                                                              111 (110.4)  022                                                              112 (112.1)  021                                                              113 (113.7)  020                                                              114 (113.7)  020                                                              115 (115.5)  017                                                              116 (115.5)  017                                                              117 (117.2)  016                                                              118 (117.2)  016                                                              119 (119.1)  015                                                              120 (121.0)  014                                                              121 (121.0)  014                                                              122 (122.9)  013                                                              123 (122.9)  013                                                              124 (124.9)  012                                                              125 (124.9)  012                                                              126 (127.0)  011                                                              127 (127.0)  011                                                              128 (127.0)  011                                                              129 (129.2)  010                                                              130 (129.2)  010                                                              131 (131.4)  007                                                              132 (131.4)  007                                                              133 (133.7)  006                                                              134 (133.7)  006                                                              135 (136.1)  005                                                              136 (136.1)  005                                                              137 (136.1)  005                                                              138 (138.5)  004                                                              139 (138.5)  004                                                              140 (141.1)  003                                                              141 (141.1)  003                                                              142 (141.1)  003                                                              143 (143.8)  002                                                              144 (143.8)  002                                                              145 (143.8)  002                                                              146 (146.5)  001                                                              147 (146.5)  001                                                              148 (149.4)  000                                                              149 (149.4)  000                                                              150 (149.4)  000                                          R-SYNC    270  260  Nonsynchronous                                                                             000                                                              Synchronous  001                                          SENSITIVITY                                                                             330  320  Medium       000                                                              Low          001                                                              Medium       002                                                              High         003                                          OUTPUT    370  360  Single       000                                                              Double       001                                          __________________________________________________________________________

In Table I above the data value numbers given with respect to both highrate and rate include a non-parenthetical number and a parentheticalnumber. The parenthetical number represents the actual pulse per minuterate which will be provided and is limited by the frequency of the clocksignal and the number of stages of shift registers. Thenon-parenthetical number is the closest nominal rate which would beselected by a physician in programming pulse generator 16 when it isimplanted in a patient. For instance, if a physician desired to programpulse generator 16 to have a rate of 72 pulses per minute, he woulddepress the rate parameter key 22 and then the number 72 on the numerickeys 24 of programmer 12. He would then depress one of the permanent ortemporary keys and indicate whether a permanent or temporary rate changeis to occur. Assuming the rate change desired is permanent, programmer12 would transmit a parameter code of "220" followed by a data valuecode of "067", an access code of "227" and a parity code of " 247".Pulse generator 16 responds to this code by transmitting pulses at arate of 71.9 pulses per minute. This is as close to the nominal desiredvalue of 72 pulses per minute that the internal component and frequencyvalues of pulse generator 16 are capable of transmitting stimulatingpulses.

Referring now to FIG. 5, there is shown the manner of arranging FIGS.5A, 5B and 5C to form an entire block diagram of digital circuit 40. Inreviewing FIGS. 5A, 5B and 5C, it should be noted that any signals whichare received from or applied to analog circuit 42 have been encircled.Further, all provisions of power supply voltage or ground coupled toeach block have been deleted although it should be understood that thesesignals are necessary and should be coupled in the known and acceptedmanner of designing digital logic circuits. Also, for each of the blocksshown in FIGS. 5A, 5B and 5C, data signals are shown as being applied tothe left side of the block, reset signals are applied to the bottom ofthe block, set signals are applied to the top of the block and theoutput signals are provided at the right side of the block. Lastly,wherever a plurality of lines are transmitted from or to a particularblock circuit, such as a parallel output from a counter, shift register,or memory circuit, such plurality of lines are represented as wide heavylines.

Referring now to FIG. 5A specifically, the program acceptance andprocessing logic 100 is shown. The DATA signal provided from analogcircuit 42 is applied to reset to 24 logic 106, data decode logic 108,eight stage shift register 110 and through NOR gate 112, to thirteenstage shift register 116. As is well known in the art, a NOR gate is acircuit which provides a logic "1" signal whenever all of the signalsapplied to the input thereof are in a logic "0" state and provides alogic "0" signal when any one or more of the signals applied to theinput thereof is in a logic "1" state. The leading edge of DATA signalresets reset to 24 logic 106 causing the output thereof to become logic"0". The trailing edge of each DATA signal pulse resets data decodelogic 108 to allow a time measurement to be made between the trailingedge of one DATA signal pulse and the leading edge of the next DATAsignal pulse.

In addition to the DATA signal, the fast clock signal, which is a 4,096hz clock signal, synchronized to the system timing, is provided to datadecode logic 108. Data decode logic 108 provides a data clock signaljust after the trailing edge of each DATA pulse which is synchronized tothe circuit timing from its upper output thereof and a digital datasignal manifesting the datum value between the most recent twosuccessive data pulses from its lower output. The data clock signal fromthe upper output of data decode logic 108 is coupled to the clock inputto access code check logic 114 and to the clock input to pulse counter118.

The data signal from the lower output of data decode logic 108 iscoupled as the data input of eight stage shift register 110 and the DATAsignal is applied to the clock input of eight stage shift register 110.Upon the occurrence of the leading edge of each DATA signal pulse, thebinary value at the data input of eight stage shift register 110 isstored in the first stage thereof, and the value previously in the firststage is shifted into the second stage and so forth throughout all eightstages of shift register 110. The signal which appeared in the eighthstage of shift register 110 is applied at the output thereof to the datainput of thirteen stage shift register 116. The clock input of thirteenstage shift register 116 is coupled to the output of NOR gate 112 whichhas the DATA signal and a normally logic "0" signal from the output ofaccess code check logic 114 applied thereto. As long as gate 112 isenabled by the logic "0" signal from access code check logic 114, thedata applied to the data input of shift register 116 is clocked theretoupon the occurrence of the leading edge of each DATA signal pulse.

The upper, or data clock, output from data decode logic 108 is appliedto pulse counter 118 which increments its count beginning with a countof zero each time a pulse appears on the data clock output. Whenever thecount in pulse counter 118 is nonzero, the signal at the center outputthereof becomes logic "0" and is applied to enable timeout logic 120 ina manner which will be explained hereafter. After pulse counter 118achieves a count of twenty-four, a logic "1" signal is applied from thelower output thereof to enable access code check logic 114.

Access code check logic 114 has applied thereto the parallel outputsfrom each of the eight stages from eight stage shift register 110 andincludes decoding means which causes a logic "1" signal to be providedwhenever the code stored by eight stage shift register 110 is the accesscode of octal 227. It should be noted that the lower output from pulsecounter 118 remains as a logic "1" signal to enable access code checklogic 114 from the time pulse counter 118 reaches a count of twenty-fouruntil it overflows after reaching a count of thirty-two.

When access code check logic 114 detects the access code and provides alogic "1" signal, NOR gate 112 becomes disabled and no further DATAsignals are applied therethrough to the clock input of thirteen stageshift register 116. Thus, the thirteen data values preceding the accesscode remain stored in thirteen stage shift register 116. As should berecalled from the discussion of the data word with respect to FIG. 3,the thirteen data values preceding the access code include eight bitsdefining the data, four bits defining the parameter to be modified, andone bit defining whether the modification is to be permanent ortemporary. The initial three data bits in the parameter portion of theword are always zeros and during the shifting procedure, are shiftedentirely through eight stage shift register 110 and thirteen stage shiftregister 116 to be lost.

The data provided from data decode logic 108 continues to be providedinto eight stage shift register 110 following detection of the accesscode. However, the data stored in thirteen stage shift register 116remains fixed because gate 112 is now closed by the provision of thelogic "1" signal from access code check logic 114. Following the accesscode is the parity code which, eight bit times later, is stored in eightstage shift register 110.

The logic "1" signal provided from access code check logic 114, isprovided to set reset to 24 logic 106 which, in turn, provides a signalto reset pulse counter 118 to a count of twenty-four. This is necessarybecause it is possible that a few extraneous pulses may have beenprovided just prior to the programming which would have caused the countof pulse counter 118 to be greater than twenty-four at the time theaccess code was detected by circuit 114.

After the eighth bit of the parity code is stored in eight stage shiftregister 110, the pulse counter 118 will have counted thirty-two databits, and this causes a logic "0" to logic "1" change in the signal atthe upper, or overflow (OF) output of pulse counter 118. The OF outputfrom pulse counter 118 next is provided to set counter overflow latch104, which then provides a logic "1" signal to enable error check logic122. Error check logic 122 determines whether the received DATAprogramming signal has passed all of the necessary checks. These checksare both the access code check 114 signal becoming logic "1" and theparity check logic 124 signal becoming logic "1" at the time the counteroverflow latch 104 signal becomes logic "1". Error check logic 122 isalso responsive to a 128 hz SLO CLK signal provided from FIG. 5B tocause either an ACCEPT or an ERROR logic "1" pulse signal to be providedhaving a pulse width equal to the time between SLO CLK pulses.

Parity check logic 124 has applied thereto the output from the eightstages of shift register 110 and the outputs of the thirteen stages ofshift register 116. Its function is to check the vertical parity of thethirteen parameter data test bits stored in thirteen stage shiftregister 116 against the parity code stored in eight stage shiftregister 110. Whenever the parity matches, a logic "1" signal isprovided from parity check logic 124.

If at the time counter overflow latch 104 is set, the checks in errorcheck logic 122 find that the programming signal is accepted, the ACCEPTsignal is applied at the lower output thereof; otherwise, an ERRORsignal is provided from the upper output of error check logic 122. Boththe ERROR signal and the ACCEPT signal are provided to reset counteroverflow latch 104. The ERROR signal is also provided to reset logic126. The ACCEPT signal from error check logic 122 is provided to thedata input of write latch 128, to the clock input of test latch 130 andto enable temporary memory 132 to receive the data and parameter signalsfrom the first twelve stages of thirteen stage shift register 116.

Reset logic 126 is additionally responsive to the signal from timeoutlogic 120, to the signal from write latch 128 and to the REED signalwhich is logic "1" when reed switch 46 is closed. Reset logic 126contains an upper and a lower output. The lower output is coupled to thereset input of pulse counter 118, to one input of reset to 24 logic 106and to the reset input of access code check 114. The upper output fromreset logic 126 is coupled to the reset input of the inhibit logic 134and to the reset input of test latch 130. A signal appears at bothoutputs of reset logic 126 whenever a signal is provided from timeoutlogic 120, whenever the ERROR signal is provided or whenever the REEDsignal signifies that reed switch 46 is closed. A signal appears at thelower output only of reset logic 126 when a signal is provided fromwrite latch 128.

Write latch 28 has applied to the data input thereof the ACCEPT signalfrom error check logic 122 and to the clock input thereof, the SLO CLKsignal. Upon the occurrence of each SLO CLK pulse, write latch 128 isclocked so that the output manifests the data value of a signal appliedto the data input thereof, which is the ACCEPT signal from error checklogic 122. The output of write latch 128 is coupled to one input ofreset logic 126, to one input of inhibit logic 134 and to one input ofmemory strobe 136.

The other input to memory strobe 136 is coupled from the output of testlatch 130. Memory strobe 136 provides a signal to parameter decode logic138 in FIG. 5B each time a signal is provided from write latch 128 andno signal is provided from test latch 130. The memory strobe 136 signalcauses parameter decode circuit 138 to decode the parameter code appliedthereto from temporary memory 132 and to provide a signal manifestingwhich permanent parameter change is to occur.

Test latch 130 is responsive to the test signal from the thirteenthstage of thirteen stage shift register 116 and to the ACCEPT signal fromerror check logic 122 and provides signal to parameter decode logic 138in FIG. 5B to cause the parameter signals applied thereto from temporarymemory 132 to be decoded and a signal provided indicating whichtemporary parameter change is to occur. In addition, the output fromtest latch 130 is applied to memory strobe 136 and to inhibit logic 134.

Temporary memory 132, upon the occurrence of the ACCEPT signal fromerror check logic 122, stores the four parameter and eight data bitsstored in thirteen stage shift register 116. The parameter bits storedin temporary memory 132 are applied to the parameter decode logic 138,where they are decoded in conjunction with the signals from either thememory strobe 136 or the test latch 138 and a signal is provided fromparameter decode logic 138 to memory 140 indicating which permanentparameter change or temporary parameter change is to occur. The possibleparameter changes which can be decoded by parameter decode logic 138 andapplied to memory 140 are those shown in Table I above. In addition,selected ones of the parameters, that is the High Rate parameter, theTemporary Sensitivity parameter, the Temporary Refractory parameter, theTemporary R-Sync parameter, the Auto Threshold parameter, the PermanentDemand parameter, the Temporary Demand parameter, the Demand parameterand the Inhibit parameter are provided as independent signals fromparameter decode 138.

The eight data bits provided from temporary memory 132 are applied tomemory 140 in FIG. 5B and to inhibit decode logic 142. In the event thata permanent parameter change is decoded, the data bits applied to memory140 are stored in that portion of memory 140 enabled by the decodedparameter signal. In the event that a temporary parameter change isdecoded, the data signals applied from temporary memory 132 are gatedthrough the appropriate stages of memory 140 without causing a permanentchange to the previously existing data stored by memory 140.

Memory 140 includes 22 stages each of which provides either a logic "1"or a logic "0" data signal. Memory 140 is organized such that six stagesare associated with pulse width data, eight stages are associated withrate data, one stage is associated with R-synchronous data, two stagesare associated with each of refractory, hysteresis, and sensitivity dataand one stage is associated with the output voltage magnitude data. Theparameter signals determine which of the stages are to be enabled tostore the new data applied from temporary memory 132 so as to bereprogrammed to provide different data signals.

The data from temporary memory 132 is also applied to inhibit decodelogic 142, which provides a logic "0" signal only in the event that allof the data bits are logic "1". The output signal from inhibit decodelogic 142 is provided as one input to inhibit logic 134. Inhibit logic134, which is reset by the upper output from reset logic 126, and set inresponds to the write signal and test signals provided from write latch128 and test latch 130 and the inhibit parameter signal provided fromparameter decode logic 138, and provides a signal to disable outputlogic 178 shown in FIG. 5C. In addition, inhibit logic 134 signal isprovided to timeout logic 120.

Timeout logic 120, as previously mentioned, is responsive to pulsecounter 118 having a nonzero count, to inhibit logic 134 being set andto latch 128 being set. In addition, timeout logic 120 is responsive tothe recharge logic 164 signal provided from FIG. 5C which, as will beexplained hereafter, is provided after each artificial stimulating pulseis to be provided by or a natural heartbeat is detected by pulsegenerator 16. Timeout logic 120 provides a timeout signal at its outputafter the second recharge logic 164 signal is applied thereto followingeither a write signal coincident with the setting of inhibit logic 134following the time pulse counter 118 has a nonzero count. The timeoutsignal provided from the output of timeout logic 120 is applied to resetlogic 126 to cause a reset signal from both of its outputs to beprovided, which signals reset pulse counter 118, access code check logic114, inhibit logic 134, and test latch 130. This, in turn, causes ageneral shut down of the programming circuitry shown in FIG. 5A.

The purpose of timeout logic 120 is to cause a resetting of the programacceptance and processing logic 100 shown in FIG. 5A after two cardiacstimulating pulses have been provided in the following two situations:(1) the inhibit feature is programmed, and (2) extraneous pulses causepulse counter 118 to contain a nonzero count. When it is desired toinhibit more than two output pulses, it thus becomes necessary toprovide a new inhibit programming signal prior to the time the twopulses have been inhibited in order to reset timeout logic 120. Inpractice, to program the inhibit feature, programmer 12 may be designedto provide continual inhibit programming signals as long as the inhibitfunction button 26 is maintained depressed.

Referring now to FIGS. 5B and 5C the pulse generating portion 150 ofpulse generator 16 is shown. The timing sequence used to control thepulse width, the rate, the refractory time, the lower hysteresis rate,and the amplifier blanking time is determined by fast counter 152, slowclock logic 154 and the slow counter 156. Fast counter 152 counts theclock pulses provided thereto from clock logic 158 which provides at itslower output a clock signal equal to either the external crystaloscillator (XTAL) signal or the VCO signal, both of which are applied toclock logic 158. A second input to fast counter 152 is from thethreshold check logic 160 that causes fast counter 152 to count at afaster rate during a specific portion of the threshold check timeperiod. A third input to fast counter 152 is the reed switch logic 159signal which allows the 4,096 hz FST CLK signal to be applied as theclock input to data decode logic 108 in FIG. 5A whenever reed switch 46is closed.

Fast counter 152 is a nine stage binary counter connected in a knownmanner. The outputs from the lower seven stages of fast counter 152 areapplied to pulse width control logic 157. The outputs from the second,third, fourth, fifth and ninth stages of fast counter 152 are applied toslow clock logic 154. In addition the output from battery latch 162, andthe clock signal from clock logic 158 are applied as inputs to slowclock logic 154. Slow clock logic 154 responds to the output from fastcounter 152 by providing a 128 hz SLO CLK signal as long as the voltageof battery 44 is above a certain minimum value. Whenever the voltageprovided from battery 44 falls below that minimum value, the BATTERYsignal applied from the Battery Status portion of analog circuit 42causes battery latch 160 to become reset. This, in turn, causes the rateof the signal provided from slow clock logic 154 to be reduced byapproximately ten percent, or to become approximately 113 hz.

The output from slow clock logic 154 is provided as the input to slowcounter 156. Slow counter 156 is an eight stage binary counter connectedin a known manner and can be set upon a logic "1" signal being appliedto the set input thereof from recharge logic 164 to a count of twohundred and eight. Selected ones of the outputs of the eight stages ofslow counter 156 are applied to overflow logic 166, refractory logic168, blank logic 169, rate control logic 172 and hysteresis logic 174.

The output signals from the six stages of the pulse width portion ofmemory 140 are applied to pulse width decode logic 157 and the outputsignals from the eight stages of the rate portion of memory 140 areapplied to rate decode logic 172. The output from the R-sync stage ofmemory 140 is applied to R-sync gate 176. The signals from the tworefractory stages of memory 140 are applied to refractory logic 168. Thesignals from the two hysterisis stages of memory 140 are applied tohysteresis logic 174. The signal from the two sensitivity stages ofmemory 140 are combined and a single SENSITIVITY signal is applied tothe sense amplifier on analog circuit 42, shown in FIG. 4. Lastly, thesignal from the output stage of memory 140 is applied to output logic178.

The general philosophy of programming the circuitry shown in FIGS. 5A,5B and 5C is to change the values stored by memory 140 in order to causea parameter to be changed. The programmed change then occurs as a resultof individual circuits within FIGS. 5B and 5C responding to differentsets of values applied thereto from memory 140. In addition to the abovementioned circuits, FIGS. 5B and 5C include reversion logic 170, digitalrate limit logic 180, hysteresis gate 182, pre-resync logic 184, pulsewidth logic 186, post-resync logic 187, verify pulse logic 188, demandlogic 190 and gate 192.

The description for the remainder of the block diagram shown in FIGS. 5Band 5C will be in terms of general operation. The detailed connectionand operation of each individual block will be given with respect toFIGS. 6A through 6N.

Immediately after a cardiac stimulating pulse is provided or naturalcardiac activity is sensed, fast counter 152 is reset to a count of zeroand slow counter 156 is set to a count of 208. The count of 208 isselected so that the overflow of slow counter 156 from a full count of255 to a zero count will occur at a time which can be used to obtain a400 msec timing signal. This 400 msec timing signal is used to determinean upper rate limit and as one of the programmable refractory times.

After being reset, fast counter 152 begins counting the clock pulsesprovided thereto from clock logic 158. At this point in time clock logicpulses originate from the external oscillator and are a frequency of32,768 hz. Assuming the battery voltage is not low and battery latch 162remains set, each time the ninth stage of fast counter 152 is set, asignal will be applied therefrom to slow clock logic 154. This willoccur at a frequency of 128 hz. One clock pulse later, a SLO CLK pulseis provided for one clock signal pulse period. This SLO CLK pulse isapplied to reset fast counter 152 to a count of zero and one clocksignal pulse period later fast counter 152 begins counting again. Hencethe frequency of the SLO CLK pulses is actually closer to 127 hz.

The pulses from the output of slow clock logic 154 are provided to theinput of slow counter 156 which increments its count from the initialcount of 208 each time a pulse is provided thereto from slow clock logic154. During the time slow counter 156 is counting from its set value of208 to its full value of 255, blank logic 169 and refractory logic 168provide signals at the appropriate times, based on decoding selectedcounts from slow counter 156, to reversion logic 170 to allow therefractory and reversion functions to operate. As is well known in theart, the refractory period is a certain time after either an artificialpulse is provided or a natural heartbeat occurs during which no responseis made to sensed electrical signals and the reversion function disablesall response to sensed electrical signals in the event a continuous wavesignal is being sensed.

At the time slow counter 156 achieves a full count and overflows back toa zero count, overflow logic 166 will respond and provides a signal toenable digital rate limit logic 180 to be able to provide a pulse at itsoutput. As will be explained hereafter, it is the rate limit logic 188pulse that begins the chain of events leading to the provision of astimulating pulse by pulse generator 16.

Slow counter 156 then begins incrementing its count from zero until itreaches a count similar to the count contained in the eight stages ofthe rate portion of memory 140. Signals from the rate portion of memory140 and from each stage of slow counter 156 are applied to rate decodelogic 172, which generates a signal when the next SLO CLK pulse occursfollowing the time the count in slow counter 156 equals the code storedin memory 140. This assumes that no signal is applied from thresholdcheck logic 160 to rate decode logic 172. The signal from rate decodelogic 172 is applied through hysteresis gate 182 which is enabled if nohysteresis is programmed or if the preceding heart beat was artificiallystimulated. However, if hysteresis is programmed and the last occurringheart beat was a natural beat, hysteresis logic 174 will be set todisable hysteresis gate 182 so that no signal can pass throughhysteresis gate 182 until a time has passed equal to the hysteresistimeout period measured from the last natural beat.

The pulse at the output of hysteresis gate 182 is provided to digitalrate limit logic 180 which, if enabled by the signal from overflow logic166, provides a signal to set pre-resync logic 184. Logic 184 provides asignal to clock logic 158 to cause the VCO ENABLE signal to be provided,resulting in the VCO beginning to provide clock signals to clock logic158, and to pulse width logic 186. The VCO ENABLE signal is utilizedwithin clock logic 158 to cause the clock pulses provided therefrom tobe the VCO pulses rather than the external oscillator pulses. Thepre-resync logic 184 signal is also provided to slow clock logic 154 tocause an extra SLO CLK pulse to be provided to reset fast counter 152 toa count of zero. In addition the pre-resync logic 184 signal causesblank logic 169 to provide the BLANK signal for 100 msec and enablespulse width logic 186 to provide the leading edge of the logic "1" pulsewidth (PW) logic 186 signal upon the occurrence of the next VCO clockpulse. Thus, the primary purpose of pre-resync logic 184 is to cause thetiming logic to be resynchronized to the change from external oscillatortiming pulses to VCO timing pulses. It should be recalled that the VCOtiming pulses occur at a nominal rate of 40,000 hz whereas the externalclock timing pulses occur at a rate of 32,768 hz.

As fast counter 152 increments its count from zero in response to theVCO timing pulses applied thereto from clock logic 158, the output ofthe second through seventh stages thereof are compared against thesignals stored in the pulse width portion of memory 140 by pulse widthdecode logic 157. At the time a comparison is made, which will be thecount of fast counter 152 equivalent to the duration of the desiredpulse, pulse width decode logic 157 provides an output signal to pulsewidth logic 186 to cause the then logic "1" signal provided thereby toreturn to logic "0" upon the occurrence of the next VCO clock pulse.Thus the PW signal at the output of pulse width logic 186 is a signalhaving a pulse width equal to programmed pulse width for the signal tobe provided from pulse generator 16.

The signal from the output of pulse width logic 186 is provided tooutput logic 178 which provides a pulse signal having the same pulsewidth as the pulse width logic 186 signal over either the SINGLE or theDOUBLE output depending upon the value of the OUTPUT signal from memory140. It should be recalled that the SINGLE and DOUBLE output signalsfrom output logic 178 are coupled to analog circuit 42, shown in FIG. 4,and cause a voltage pulse of either battery 44 voltage or twice battery44 voltage to be provided from pulse generator 16 over lead 18 to theheart.

The pulse width logic 186 signal is also provided to clock logic 158 tomaintain the VCO ENABLE signal provided. When the pulse width logic 186signal returns to logic "0", the VCO ENABLE signal is removed and thecrystal oscillator XTAL clock signal is again provided from the clockoutput of clock logic 158. In addition, the pulse width logic 186signal, is provided to post-resync logic 187 to cause a post-resynclogic 167 signal to be provided at the time the pulse width logic 186signal returns to logic "0". The post-resync logic 187 signal causesslow clock logic 154 to provide an extra pulse upon the occurrence ofthe next XTAL clock signal to reset fast counter 152 so as to beresynchronized to the XTAL clock pulses then being provided. Thepost-resync logic 187 signal is also applied to recharge logic 164,which upon the occurrence of that next slow clock logic 154 signalbecomes set and provides a logic "1" recharge logic 164 signal to thevoltage doubler portion of analog circuit 42 to allow the doublingcapacitor therein to be recharged. The recharge logic 164 signal is alsoprovided to reset post-resync logic 187, so that upon the next slowclock logic 154 signal, recharge logic 164 becomes reset and no longerprovides a logic "1" signal. The output from recharge logic 164 is alsoprovided to reset slow counter 156, to a count of 208, to enablerefractory logic 168 and reversion logic 170, and to reset rate decodelogic 172 and overflow logic 166 and the above process is repeated.

In addition to the above mentioned circuit portions in FIG. 5B, verifypulse logic 188 and demand logic 190 are provided. Verify pulse logic188 is utilized to cause an additional pulse to be provided at the endof the 100 msec BLANK time in the event memory strobe logic 136 signalfrom FIG. 5A is provided. This second pulse is provided in order to givean indication to the operator of programmer 12 that the program has beenaccepted. The verify logic 188 extra pulse may be of a low pulse widthso as to be nonstimulating and further timed to occur at a non-criticalpoint in the electrocardiac signal process. It is also possible tomerely extend the interval between successive stimulating pulses by 100msec rather than provide an extra pulse so that an indication of programacceptance to the operator.

Demand logic 190 operates to override the normal effects of the closureof reed switch 46 which is to inhibit any response to the SENSE signalprovided from the sense amplifier in analog circuit 42. However, theinhibition effect of the reed switch is overriden in the event thatthere is temporary programming of either amplifier sensitivity,R-synchronous mode or refractory time or in the event that the demandmode is programmed on either a temporary or a permanent basis, despitethe closure of the reed switch.

One other element included in FIG. 5C is gate 192 which is closed inresponse to the HI RATE parameter signal from parameter decode 138 inFIG. 5A or in response to a signal from verify pulse logic 188. Whengate 192 is closed it grounds the RATE LIMIT output pad, therebydisabling the effects of the analog rate limit circuitry in analogcircuit 42 and digital rate limit logic 180. It is necessary to removethe rate limit protection when it is desired to program the rate to ahigh value or upon the occurrence of the verify pulse.

At this point a more detailed description of each of the blocks shown inFIGS. 5B and 5C will be given with the above overview of the operationsbeing kept in mind. Pulse width decode logic 157 responds to the outputof the first seven stages of fast counter 152 and the signals from thesix outputs of the pulse width portion of memory 140. In addition pulsewidth decode logic 157 responds to the provision of the signal from theverify pulse logic 188 and the VCO ENABLE signal from clock logic 158.Pulse width decode logic 157 provides a pulse signal having a leadingedge which causes the desired trailing edge of the pacemaker stimulatingpulse to occur. This pulse signal is provided either in response to thesignal from the verify pulse logic 188 or in response to a comparisonbetween the count of counter 152 and the digital code stored in thepulse width portion of memory 140. The output from pulse width decodelogic 157 is applied as one input to pulse width logic 186.

Threshold check logic 160 responds to the pulse width logic 186 signal,the write latch 128 signal from FIG. 5A, the Autothreshold signal fromthe parameter decode 138, the reed switch logic 159 signal, the accesscode check logic 114 signal from FIG. 5A and the recharge logic 164signal. Threshold check logic 160 provides two output signals, the upperone of which is provided to fast counter 152 to cause the first twostages of fast counter 152 to become a divide by three rather thandivide by four network. The upper output signal from threshold checklogic is a pulse signal occurring in time coincidence with the thirdpulse width logic 186 signal following either the closure of the reedswitch or the provision of the write latch 128 signal and theAutothreshold signal.

The lower output signal from threshold check logic 160 is a signalcommencing immediately after the first stimulating pulse providedfollowing either the closure of reed switch 46, manifested by a signalfrom reed switch logic 159 or the provision of the write latch 128signal together with the provision of the Autothreshold parameter signaland lasts until after the provision of four additional pulse width logic186 signals. This lower signal from threshold check logic 160 isprovided to one input of rate decode logic 172.

The threshold check sequence is a series of four pulses occurring at arate of 100 beats per minute with the first three pulses in the sequencebeing of normal programmed pulse width and the fourth pulse having apulse width of 75% of the programmed width. In the situation where theAutothreshold signal is provided, the data portion of the Autothresholdprogramming word will designate the desired temporary pulse width forthe initial three pulses in the sequence and the fourth pulse in thesequence will be 75% of that designated pulse width. The Autothresholdfeature is useful to physicians for checking the threshold safety marginof the stimulating pulse provided by pulse generator 16 to determine atwhat pulse width capture is lost. Then the physician can set a pulsewidth in a permanent mode to insure an adequate safety margin.

Rate decode logic 172 responds to the slow clock logic 154 signal, thecode in the rate portion of memory 140, the count of slow counter 156,the lower output from threshold check logic 160 and the recharge logic164 signal. Rate decode logic 172 includes a latch which is reset by therecharge logic 164 signal occurring after each pulse width logic 186signal or a detected natural heartbeat. When the latch is set, itprovides a signal through hysteresis gate 182, and digital rate limitcircuit 180 to begin the sequence leading to the provision of the pulsewidth logic 186 signal. The latch within rate decode logic 172 is set bythe slow clock logic 154 signal following the matching of the slowcounter 156 with the coded rate signals applied thereto from memory 140if no signal from threshold check logic 160 is applied or at a rate of100 beats per minute, or the programmed rate if greater than 100 beatsper minute, if the signal from threshold check logic 160 is applied. Inthe event hysteresis gate 182 is not enabled by hysteresis logic 174,the latch remains set, thereby applying a continuous signal tohysteresis gate 182, until it becomes enabled and the recharge logic 164signal is provided after the provision of the stimulating pulse. Thus, asignal is provided to hysteresis gate 182 until it is enabled byhysteresis logic 174 to cause a stimulating pulse to be provided.

Hysteresis logic 174 responds to selected counts of slow counter 156,the slow clock logic 154 signal, the two hysteresis signals from theoutputs of the hysteresis portion of memory 140, the reed switch logic159 signal, the overflow logic 166 signal and the sense reset signalfrom reversion and sense reset logic 170, and provides a hysteresis gateenable signal. Hysteresis logic 174 includes a latch circuit which isreset each time a signal is provided from reversion and sense resetlogic 170 indicating the sensing of natural cardiac activity and whichis set whenever the hysteresis timeout period expires. The hysteresistime-out period is determined by the code of the Hysteresis 1 andHysteresis 2 signals from memory 140 enabling selected decoding gatesresponsive to the selected counts of slow counter 156 and overflow logic160. In addition, the Hysteresis 1 and Hysteresis 2 signals can indicateno hysteresis function, in which case the hysteresis logic latch is heldin a set condition. Finally, the hysteresis logic latch is held in a setcondition whenever reed switch 46 is closed. The output signal fromhysteresis logic 174 is the latch output which maintains hysteresis gate182 enabled whenever it is in a set condition.

Demand logic 190 responds to the closure of reed switch 46 and theprovision of the reed switch logic 159 signal by providing an outputsignal to prevent reversion and sense reset logic 170 from responding tothe SENSE signal from the sense amplifier included in analog circuit 42.However, if it is desired to temporarily program the sensitivity of thesense amplifier, or temporarily program pulse generator 16 to operate inthe R-synchronous mode or temporarily program a refractory time change,the physician could not observe any response due to the inhibition ofthe response to the SENSE signal. Hence the temporary sensitivity, thetemporary refractory and the temporary R-sync signals from parameterdecode logic 138 are provided to demand logic 190 to override theeffects of the closure of reed switch 46. Further, whenever thephysician desires to either temporarily or permanently program pulsegenerator 16 to operate in the demand mode while reed switch 46 isclosed, the amplifier response inhibition due to the closure of reedswitch 46 is overridden. Also, whenever the verify pulse is provided, asignal from verify pulse logic 188 is provided to override theinhibition of the sense amplifier due to the closure of reed switch 16.

Fast counter 152 responds to the clock pulses provided from the loweroutput of clock logic 158, which during the period between the provisionof stimulating pulses are provided from the external oscillator inanalog circuit 42 and during provision of the stimulating pulse areprovided from the VCO in analog circuit 42, and fast counter 152 isreset in response to each slow clock logic 154 signal. In addition fastcounter 152 is responsive to the upper output signal from thresholdcheck logic 160 which converts the first two stages of the nine stagefast counter 152 into a divide by three rather than a divide by fournetwork. When the first two stages are converted to a divide by threenetwork, fast counter 152 will achieve a given count in a period of time75% of the time necessary when the first two stages are a divide by fournetwork. This feature is used to allow the threshold check pulse to beprovided having a width 75% of the normal programmed pulse width.

One output from fast counter 152 is the fast clock signal which is takenfrom the third stage of fast counter 152 and provided whenever thesignal from reed switch logic 159 manifests that the reed switch isclosed. The outputs from the second, third, fourth, fifth and ninthstages of fast counter 152 are provided to slow clock logic 154 and theoutputs from the first seven stages are provided to pulse width decodelogic 157 where the second through seventh stage outputs are comparedwith the programmed pulse width data in memory 140 to cause theprovision of a signal terminating the pulse provided by pulse widthlogic 186 at the proper time.

Verify pulse logic 188 responds to the memory strobe 136 signal, theoutputs from the third and fifth stages of fast counter 152, the BLANKsignal provided from blank logic 169, the pulse width logic 186 signal,and the Demand signal from parameter decode logic 138. Verify pulselogic 188 operates to cause a verify pulse to be provided upon theoccurrence of each memory strobe pulse signal provided from memorystrobe logic 136 in FIG. 5A unless the demand parameter is beingprogrammed, and the Demand signal is logic "0". The verify pulse isprovided after the time the BLANK signal from blank logic 169 returns toits normal logic "1" value and has a pulse width determined by thetiming signals from fast counter 152. The output from verify pulse logic188 is provided to digital rate limit logic 180 to cause the leadingedge of a stimulating pulse and to gate 192 to override the rate limitinhibition. The verify pulse logic 188 signal is also applied to inhibitpulse width decode logic 157 and to pulse width logic 186 to determinethe trailing edge of the verify pulse. Lastly, the verify pulse logic188 signal is provided to R-Sync gate 176 to cause both the normal andverify pulses to be synchronized with detected R waves to prevent anydouble stimulating pulse to be provided in the so-called venerable zonearound the T wave.

Hysteresis gate 182 passes the signal applied thereto from rate decodelogic 172 to digital rate limit logic 180 unless it is disabled by asignal from hysteresis logic 174.

Slow counter 156 is an eight stage binary counter which has the countstored thereby incremented by one each time the slow clock logic 154signal is applied to the first stage thereof. The outputs from selectedstages of slow counter 156 are applied to various other circuit portionsto obtain proper timing. Specifically the outputs from selected stagesof slow counter 156 are applied to overflow logic 166, refractory logic168, blank logic 169, rate decode logic 172 and hysteresis logic 174.After each stimulating pulse is generated by pulse generator 16 inresponse to the pulse width logic 186 signal, slow counter 156 is set toa count of 208 by the recharge logic 164 signal. Thereafter slow counter156 counts upwards each time a slow clock logic 154 signal is appliedthereto until it reaches a full value of 255. During this time, the 100msec BLANK pulse time from blank logic 169 and the programmed refractoryperiods controlled by refractory logic 168 are determined in response tothe count of slow counter 156. After slow counter 156 counts to a fullvalue, it overflows and has a count of zero therein, thereby settingoverflow logic 160. At this point it begins counting upward again eachtime a slow clock logic 154 pulse is provided. As slow counter 156continues counting upward, the outputs from its stages are applied tohysteresis logic 174 and to rate decode logic 172 and compared againstprogrammed values or decoded by enabled gates. After a rate time-outperiod is determined, thereby causing a stimulating pulse to beprovided, slow counter 156 is again set to a count of 208.

Reed switch logic 159 responds to the REED input line indicative ofwhether reed switch 46 is open (logic "0") or closed (logic "1") and toa clocking signal from blank logic 169 which occurs whenever astimulating pulse is provided or natural cardiac activity is sensed. Theoutput from reed switch logic 159 is a signal indicating the state ofthe reed switch 46.

Slow clock logic 154 responds to the set signals from the second, third,fourth, fifth and ninth stages of fast counter 152, to the post-resyncsignal from post-resync logic 187, to the pre-resync signal frompre-resync logic 184, to the clock signal from clock logic 158 and tothe battery latch signal from battery latch 162 and provides the 127 hzslow clock logic 154 signal. As long as battery latch 162 is setindicating normal battery voltage, a slow clock logic 154 pulse isprovided one clock logic 158 pulse time after the ninth stage of fastcounter 152 is set. However, if battery latch 162 becomes reset,manifesting a low battery voltage, it is desirable to reduce the rate ofthe pulses provided by the pulse generator 16 by approximately 10percent. In the low battery voltage condition a slow clock logic 154pulse is provided when the second, third, fourth, fifth and ninth stagesof fast counter 152 are set. In this condition, the rate of the slowclock logic 154 pulses occur at a rate approximately 10 percent slowerthan would be the condition had battery latch 162 been set. In addition,a slow clock logic 154 pulse is provided each time the pre-resync andpost-resync signals occur in order to reset fast counter 152 to begincounting the VCO clock pulses from clock logic 158.

Battery latch 162 has the output of pre-resync logic 184 applied to theclock input thereof and the BATTERY signal from the battery statusmonitor within analog circuit 42 applied to the data input thereof. Inaddition, the test signal from test latch 130 in FIG. 5A is applied tothe set input of battery latch 162 to to set it each time a temporaryprogramming effort occurs in order to determine if the previously sensedlow voltage condition was accidental or real. With normal voltages, theBATTERY signal is logic "1" and battery latch 162 is maintained set. Itshould be noted that the pre-resync signal used to clock battery latch162 occurs just prior to the provision of each stimulating pulse, sothat instantaneous battery drain as a result of the provision of thestimulating pulse does not effect the BATTERY signal.

The output from battery latch 162 is applied to slow clock logic 154 tocause the slow clock logic 154 pulses to be at an approximately 10percent slower rate. In addition, the output from battery latch 162 isprovided to refractory logic 168 and blank logic 169 and overflow logic166 to enable alternate gates to decode different counts of slow counter156 in order to maintain the times decoded constant, despite the 10percent slower slow clock logic 154 pulse rate.

Overflow logic 166 is responsive to the slow clock logic 154 signal, thesignal from battery latch 162, the recharge logic 164 signal and signalsfrom output stages of slow counter 156. As long as battery latch 162 isset, overflow logic 166 responds to the final stage of slow counter 156going from a set to a reset condition after slow counter 156 has beenset to a count of 208 by the recharge logic 164 signal. However, ifbattery latch 162 is set, overflow logic 166 provides an output when allstages, except the third stage of slow counter 156, are set, so that theoutput from overflow logic 166 occurs 400 msec after slow counter 156was set regardless of the rate of the slow clock logic 154 pulses.Overflow logic 166 includes a latch which is reset by the recharge logic164 signal and which is set by the slow clock logic 154 signal followingthe time the last stage of slow counter 156 becomes reset. The outputfrom overflow logic 166 is provided to enable digital rate limit logic180 and as the 400 msec refractory time signal to refractory logic 168.

Referring now to FIG. 5C, clock logic 158 is responsive to the VCOsignal from the voltage controlled oscillator on analog circuit 42 andthe XTAL signal from the crystal oscillator on analog circuit 42. Inaddition, clock logic 158 is responsive to the pre-resync logic 184signal and the pulse width logic 186 signal. Clock logic 158 provides aclock signal from its lower output and a VCO ENABLE signal from itsupper output. The VCO ENABLE signal is provided during the timefollowing the provision of the preresync logic 184 signal and includingthe time that the pulse width logic 186 signal is provided. The clocksignals provided from the lower output of clock 158 are the XTAL pulsesduring the time the VCO ENABLE signal is not provided and the VCO signalpulses during the time the VCO ENABLE signal is provided.

The provision of the cardiac stimulating pulse is controlled by digitalrate limit logic 180, pre-resync logic 184 and pulse width logic 186,and the resyncing and resetting of various elements within FIGS. 5B and5C is controlled by post-resync logic 187 and recharge logic 164.

Digital rate limit logic 180 responds to the hysteresis gate 182 signal,the verified pulse logic 188 signal, the High Rate parameter signal fromparameter decode 138, the overflow logic 166 signal, the R-sync gate 176signal and the RATE LIMIT signal from analog circuit 42 and provides asignal at its output which ultimately causes the cardiac stimulatingpulse to be provided. Under normal operation, each time a signal isprovided to digital rate limit logic 180 from hysteresis gate 182, asignal is provided from the output of digital rate limit logic 180.However, in the event that the signals provided from hysteresis gate 182occur at a rate exceeding either the 150 beat per minute digital rateupper limit or the 130 beat per minute analog upper rate limit, asdetermined by the overflow signal from overflow logic 166 or the RATELIMIT signal from analog circuit 42, digital rate limit logic 180 causesa postponement of the provision of a signal in response to thehysteresis gate signal until such time as the upper rate limit timeperiod has expired.

In certain situations, however, it is desirable to override the upperrate limit functions contained in digital rate limit logic 180 andanalog circuit 42 and to allow signals to be provided therefrom at arate exceeding the upper rate limit. Specifically, these situationsinclude the provision of the verified pulse which occurs approximately100 msec after a normal pulse, or at a rate of 600 pulses per minute, orin the situation where a high rate parameter is being programmed, inwhich case signals can be provided up to a rate as high as 400 pulsesper minute. If either of these situations occur, the high rate parametersignal or the verify signal will override digital rate limit logic 180.In addition, these two signals are applied to gate 192, which causes theRATE LIMIT signal to be forced to ground or a logic "0" value, and thusoverride the analog rate limit feature contained in analog circuit 42.

If the R-synchronous mode is programmed, a signal is also applied todigital rate limit logic 180 from R-sync gate 176 each time naturalcardiac activity is sensed. This in turn causes a signal to be providedat the output of digital rate limit logic 180, resulting in a cardiacstimulating pulse beat provided by pulse generator 16.

Pre-resync logic 184 responds to the output signal from digital ratelimit logic 180 and provides a signal which causes clock logic 158 tobegin providing VCO pulses at its lower output. In addition, thepre-resync logic 184 signal causes clock logic 158 to provide the VCOENABLE signal to enable the VCO to begin providing pulses to clock logic158. Pre-resync logic 184 is additionally responsive to the pulse widthlogic 186 signal, the post-resync logic 187 signal and the rechargelogic 164 signal. When any one of these last three mentioned signals areprovided, preresync logic 184 is reset and can only be set by theprovision of a signal from digital rate limit logic 180. It should berecalled that the pre-resync logic 184 signal is provided to slow clocklogic 154 in FIG. 5B to cause an additional slow clock signal to beprovided. The purpose of this additional slow clock pulse is to resetfast counter 152 so that it may accurately count the then-to-be providedVCO pulses from a known initial count of zero.

Pulse width logic 186 controls the width of the output pulse to beprovided by pulse generator 16 in response to the slow clock logic 154signal, the VCO signal from analog circuit 42, the pre-resync logic 184signal, the verify pulse logic 188 signal and the pulse width controllogic 187 signal. The leading edge of the pulse provided by pulse widthlogic 186 occurs in response to the setting of pre-resync logic 184 bythe digital rate limit logic 180 signal. The trailing edge of the pulseprovided by pulse width logic 186 is determined in response to a signalfrom pulse width decode logic 157 or verify pulse logic 188.

Post-resync logic 187 responds to the recharge logic 164 signal, thetrailing edge of the pulse width logic 186 signal and the signal fromR-sync gate 176 and provides a signal at the time of the trailing edgeof the pulse width logic 186 signal to slow clock logic 154 to cause anadditional slow clock pulse to be provided. This pulse is necessary toresync the timing in the system to the provision of the crystaloscillator pulses from clock logic 158 as a result of the end of thepulse width logic 186 signal. Post-resync logic 187 is thereafter resetby the provision of the recharge logic 164 signal. In the event that thedemand mode is programmed, rather than the R-synchronous mode,post-resync logic 187 responds to the signal from R-sync gate 176 bycausing an output pulse to be provided. The purpose of this pulse is tocause a resetting of the various timing functions within FIGS. 5B and 5Cwhenever a natural cardiac signal is detected.

Recharge logic 164 responds to the post-resync logic 187 signal and toslow clock logic 154 signal and provides at its output a single pulserecharge signal having a duration equal to the time between slow clockpulses. The recharge signal is the primary signal used in resetting thevarious timing functions within the circuits contained in FIGS. 5B and5C.

Blank logic 169, refractory logic 168, reversion and sense reset logic170 and R-sync gate 176 interact together to operate during the periodafter a cardiac stimulating pulse is provided and prior to the provisionof the next cardiac stimulating pulse in controlling the events whichoccur as a result of sensing natural cardiac activity.

Blank logic 169 responds to selected outputs from slow counter 156, thebattery latch 162 signal, the slow clock logic 154 signal, the outputfrom R-sync gate 176, and the pre-resync logic 184 signal and providesthe BLANK signal from its upper output and a blank clock signal from itslower output. The blank clock signal from the lower output of blanklogic 169 is a pulse occurring at the time of the provision of thepre-resync logic 184 signal or the provision of a signal from R-syncgate 186, resulting from sensing natural cardiac activity and initiatesthe leading edge of the BLANK signal. The trailing edge of the blanksignal occurs 100 msec after the leading edge, regardless of whetherbattery latch 162 is set or reset. As previously mentioned, the BLANKsignal is provided to analog circuit 42 to cause the QRS sensingamplifier to be disabled during the 100 msec that it is provided.

Refractory logic 168 responds to the count of slow counter 156, the slowclock logic 154 signal, the overflow logic 166 signal, the Refractory 1and Refractory 2 signals from memory 140, battery latch 162 signal andthe recharge logic 164 signal and provides a signal at a certain timeafter the provision of the cardiac stimulating pulse. This certain timeis determined by the code of the Refractory 1 and Refractory 2 signalsfrom memory 140, which enable coding gates within refractory logic 168.The refractory times which can be selected are no refractory time, 325msec, 400 msec or infinity. The 400 msec refractory time is set by theoutput from overflow logic 166 and the 325 msec refractory time isdetermined by decoding gates within refractory logic 168, which decodethe count of slow-counter 156. These gates are enabled in accordancewith whether battery latch 162 is set to maintain the 325 msecrefractory time constant regardless of the rate of the slow clock logic154 pulses. The refractory period is measured from the time that therecharge logic 164 signal is provided to reset refractory logic 168. Inthe situation where no refractory time is set, the refractory period ismeasured by the 210 msec counter in reversion and sense reset logic 170.

Reversion and sense reset logic 170 responds to the demand logic 190signal, slow clock logic 154 signal, the SENSE signal from analogcircuit 42, the refractory logic 168 signal, the BLANK signal from blanklogic 169 and the recharge logic 164 signal, and provides a sense resetsignal at its output each time a SENSE signal is provided after therefractory time, unless the reversion function overrides. The reversionfunction is controlled by a counter which counts in response to the slowclock logic 154 signals until it reaches a time of approximately 210msec following either the provision of the recharge signal or theoccurrence of a sense signal. If a sense signal occurs after the BLANKtime and prior to the time the reversion counter counts to 210 msec, thereversion counter is reset to a zero count. No sense reset signal can beprovided until after the reversion counter reaches the 210 msec time.Thus, any interference signal having a frequency greater than about fivehz will cause reversion and sense reset logic 170 to be nonresponsive toall SENSE signals, that is, to revert to the asynchronous mode.

Reversion and sense reset logic 170 also responds to the refractorylogic 168 signal by inhibiting the provision of the sense reset signalin response to a SENSE signal occurring prior to the expiration of therefractory time. Thus, the sense reset signal is provided at the outputof reversion and sense reset logic 170 to indicate the natural cardiacactivity sensing only after both the reversion counter time and therefractory time have passed. Further, it should be noted that if therefractory time is set at infinity, there will be no response to theSENSE signal and the pulse generator operates in the asynchronous mode.

The reversion and sense reset logic signal is provided as one input tothe three input R-sync gate 176. The R-sync signal from memory 140 isapplied to the second input of R-sync gate 176 and acts as an enablesignal and a signal from verify pulse logic 188 is applied to the thirdinput. If the demand mode is programmed, the signal from R-sync gate 176is provided to post-resync logic 187 and to blank logic 169 to cause aresetting of the timing functions within FIGS. 5B and 5C. If the R-syncmode is programmed, the output from R-sync gate 176 is provided todigital rate limit logic 180 to cause a cardiac stimulating pulse to beprovided in synchronism with the detected natural cardiac activity.Also, whenever the verify pulse is provided, the R-sync mode isprogrammed for both the verify pulse and the normal pulse preceding theverify pulse.

Referring now to FIGS. 6A through 6N, a more detailed description ofeach of the blocks shown in FIGS. 5A, 5B and 5C will be given. FIGS. 6Athrough 6N are organized in such a manner that all of the logic elementsassociated with a particular block shown in FIGS. 5A, 5B or 5C are inthe same location and surrounded by a darker line having a numbercorresponding to the block number in FIGS. 5A, 5B and 5C. The componentparts of each block include latches, NAND gates, NOR gates, inverters,EXCLUSIVE OR gates and EXCLUSIVE NOR gates. Each latch, or flip-flop, assuch are also commonly referred to, such as the one shown schematicallyas element 106A in lower left hand corner of FIG. 6A, is designated as arectangle having longer vertical sides. Inputs to each latch are fromthe left side with the upper input being a data input and the lowerinput being a clock input. The outputs of the latch are taken from theright side with the upper output being the conventional "Q" output, andthe lower line representing the conventional "Q" output. For selectedlatches, a set and a reset input are provided with the reset input beingapplied to the bottom of the rectangle and the set input being appliedto the top of the rectangle. In operation, any logic "1" signal appliedto the reset input causes the Q output to assume a logic "0" state andthe Q output to assume a logic "1" state. Conversely, any logic "1"signal applied to the set input causes the Q output to assume a logic"1" state, and the Q output to assume a logic "0" state. Whenver asignal which changes from logic "0" to logic "1" is applied to the clockinput, the Q output assumes a logic value equal to the logic value ofthe signal applied to the data input and the Q output assumes theopposite logic value.

A NAND gate is shown schematically as element 106B in the lowerleft-hand corner of FIG. 6A and includes two or more inputs and oneoutput. The output of a NAND gate is normally a logic "1" signal unlessthe signals applied to each of the inputs thereof are logic "1", inwhich case the output of the NAND gate is a logic "0" signal.

An inverter is shown schematically as element 106C in the lowerleft-hand corner of FIG. 6A and has one input and one output with theoutput providing a signal having a logic value opposite to that of thesignal applied to the input.

A NOR gate is shown schematically as element 114A in the lower centerportion of FIG. 6A and has two or more inputs and one output. The signalat the output of a NOR gate is normally logic "0" unless the signalsapplied to each of the inputs are all logic "0" in which case the signalat the output is a logic "1".

An EXCLUSIVE OR gate is shown schematically as element 124A in FIG. 6Cand has at least two inputs and one output. The output signal is a logic"1" if signals with different logic values are applied to the inputsthereof, and a logic "0" if the signals applied to the inputs all havethe same logic value.

An EXCLUSIVE NOR gate is shown schematically as element 157A in FIG. 6Iand has at least two inputs and an output. The output signal is a logic"0" if signals with different logic values are applied to the inputsthereof, and a logic "1" if signals having the same logic value areapplied to the inputs thereof.

Referring now to FIGS. 6A through 6N assembled as shown in FIG. 6, adetailed description of pulse generator 16 will now be given. In FIG.6B, the DATA signal from analog circuit 42 is provided through seriallycoupled inverters 102A, 102B, 102C and 102D, so that the signal at theoutput of inverter 102C is of opposite polarity to the DATA signal, thatis normally logic "1" signal with logic "0" pulses, and the signal atthe output of inverter 102D is the same polarity as the DATA signal,that is a normally logic "0" signal with logic "1" pulses.

The output from inverter 102C is applied to one input of NOR gates 112Aand 112B. The output from inverter 102D is applied to the clock inputsof each of the eight latches 110A through 110H inclusive forming eightstage shift register 110. In addition, the output of inverter 102D iscoupled to the reset input of latch 106A in reset to 24 logic 106.

The output from inverter 102C is also applied to the clock input oflatch 108A in data decode logic 108. The data input to latch 108A iscoupled to +V voltage from battery 44, shown in FIG. 4. The Q outputfrom latch 108A is coupled to the data input of latch 108B. The clockinput of latch 108B is the fast clock signal applied from the output ofNOR gate 152L in fast counter 152, shown in FIG. 6I. As previouslynoted, the fast clock signal is a clock signal having a frequency of4,096 hz. The Q output from latch 108B is applied to the reset input oflatch 108A. In operation, latches 108A and 108B cause a pulse signal,synchronized with the fast clock signal, to be provided at the Q outputof latch 108B, at a time coincident with the leading edge of the firstfast clock pulse following the trailing edge of each DATA pulse. Morespecifically, the output from inverter 102C is a series of DATA signalpulses having a rising edge at the trailing edge of each pulse. Thus,the trailing edge of each DATA signal pulse causes latch 108A to becomeset which then enables latch 108B to become set upon the occurrence ofthe leading edge of the next fast clock pulse. When latch 108B is set,the logic "1" Q output signal therefrom resets latch 108A removing thelogic "1" signal from the data input of latch 108B. Thus, the leadingedge of the next fast clock pulse causes latch 108B to become reset andthe Q output signal becomes logic "0". Thus, the signal at the Q outputof latch 108B corresponds to the data clock signal at the upper outputof data decode logic 108 shown in FIG. 5A.

Data code circuit 108 also includes the three latches 108C, 108D, and108E forming a three stage binary counter. Each of latches 108C, 108Dand 108E has the Q output thereof coupled to the data input thereof. Theclock input of latch 108C is coupled to the fast clock signal from NORgate 152L in the fast counter 152 shown in FIG. 6I. The Q output fromlatch 108C is coupled to the clock input of latch 108D and the Q outputfrom latch 108D is coupled to the clock input of latch 108E. The outputfrom the data decode circuit 108 is taken from the Q output of latch108E. Further, the reset inputs of each of latches 108C, 108D and 108Eare coupled to the Q output from latch 108B, so that immediately afterthe occurrence of each DATA signal pulse, each of latches 108C, 108D and108E are reset. Latches 108C, 108D and 108E then commence counting ofthe fast clock signals and after four such fast clock signals areapplied to the input of latch 108C, the Q output of latch 108E becomeslogic "1", unless of course latches 108C, 108D and 108E have been resetin the interim by a pulse from latch 108B. Thus, if two successive DATAsignal pulses are separated by a time less than the time required forlatches 108C, 108D and 108E to count four fast clock signal pulses, datadecode logic 108 will decode a logic "0" signal as the output of latch108E at the time the leading edge of the next DATA signal pulse occurs.On the other hand, if a longer time period exists between successiveDATA signal pulses, the Q output of latch 108E will be logic "1" andthus data decode circuit 108 will manifest a logic "1" bit as the databit. Thus, the Q output of latch 108E corresponds to the decoded datavalue from the lower output of data decode logic 108 in FIG. 5A.

The data at the Q output of latch 108E from data decode logic 108 isapplied to the data input of latch 110A in eight stage shift register110. Eight stage shift register 110 includes latches 110A, 110B, 110C,110D, 110E, 110F, 110G and 110H and inverters 110I and 110J. The clockinputs of each of latches 110A through 110H are coupled to the output ofinverter 102D. The data input of each of stages 110B through 110H iscoupled to the Q output of each of the preceding stages 110A through110G. The Q output of latch 110H is coupled through serially connectedinverters 110I and 110J to the data input of thirteen stage shiftregister 116 and specifically the data input of latch 116A, therein.

Eight stage shift register 110 operates such that the logic value of thesignal applied to the data input of latch 110A is shifted through theeight stages, one at a time, each time the leading edge of the DATAsignal pulses are provided from inverter 102D. It should be noted thatthe first data pulse provided will result in a meaningless data bitbeing shifted into eight stage shift register 110. However, as will beexplained hereafter, this bit as well as the first three real data bitswill be shifted entirely through eight stage shift register 110 andentirely through thirteen stage shift register 116 and will not bestored nor utilized as part of the programming code.

Thirteen stage shift register 116 includes thirteen latch circuits, 116Athrough 116M. Stages 116A through 116D each has its clock input coupledto the output of NOR gate 112A and stages 116E through 116M each has itsclock input coupled to the output of NOR gate 112B. NOR gates 112A and112B each have one input coupled to the output of inverter 102C and ascond input coupled to the output of access code check logic 114 and,specifically, the Q output of latch 114D therein. The Q output of eachof the stages 116A through 116L is coupled to the data input of the nextsucceeding stage 116B through 116M of thirteen stage shift register 116.

As long as NOR gates 112A and 112B are enabled by a logic "0" signalbeing applied thereto from access code check logic 114, the data that isapplied from the eighth stage 110H of eight stage shift register 110will be shifted through thirteen stage shift register 116. Thus, at thetime the access code has been fully transmitted after twenty-four bitsof the thirty-two bit programming signal, the access code will be in theeight stages of shift register 110 and the thirteen most significantdata bits of the remaining sixteen data bits will be in thirteen stageshift register 115, the three least significant data bits having beenshifted out of thirteen stage shift register 116. Specifically, inthirteen stage shift register 116 stages 116A through 116H will containthe data portion of the programming code, stages 116I through 116L willcontain the parameter portion of the programming code, and stage 116Mwill contain a data bit indicating whether a permanent or temporaryprogramming change is to occur.

Referring now to FIG. 6A and specifically access code check logic 114,the Q outputs from stages 110A, 110D, 110F, 110G and 110H and the Qoutputs from stages 110B, 110C and 110E are each coupled as inputs toNOR gate 114A. Whenever the state of eight stage shift register is octal"227", each of the inputs to NOR gate 114A will be a logic "0" and theoutput thereof will be a logic "1". It should be noted that octal "227"is the access code and eight stage shift register 110 will assume thestate of the access code after twenty-four data values, defined by theleading edge of the twenty-fifth DATA signal pulse, have been appliedthereto. When each of the signals applied to NOR gate 114A are logic"0", the output thereof will be logic "1". The output of NOR gate 114Ais coupled as one input to the NAND gate 114B. The other input of NANDgate 114B is coupled to an output from pulse counter 118 which is alogic "0" until after the count in pulse counter 118 equals or exceedstwenty-four, or in other words, until after the access code has beenapplied to eight stage shift register 110. Thus, the output of NAND gate114B which is a logic "1" prior to detecting the access code, is appliedas one input to NAND gate 114C, the other input of which is the Q signalfrom latch 114D, which prior to detecting the access code is a logic"1". The output of NAND gate 114C, which will be a logic "0" prior todetecting the access code, is applied to the data input of latch 114D.The clock input to latch 114D is coupled to the data clock signal fromthe Q output of latch 108D in data decode logic 108 so that a pulse isapplied to the clock input of latch 114D just after the trailing edge ofeach DATA signal pulse occurs. After the access code has been stored ineight stage shift register 110, both inputs to NAND gate 114B will belogic "1" and the output thereof becomes logic "0". Hence the outputfrom NAND gate 114C, and the data input to latch 114D become logic "1".This occurs at the leading edge of the DATA signal pulse defining thelast bit of the access code. At the trailing edge of that same DATAsignal pulse a logic "1" pulse signal is applied to the clock input oflatch 114D, causing latch 114D to become set, since as the output ofNAND gate 114C is then logic "1". This causes the Q output thereof tobecome logic "1" and the Q output to become logic "0", which in turnmaintains the output of NAND gate 114C at a logic "1" and therebymaintain latch 114D set as additional DATA signal pulses are applied.The Q output from latch 114D is also applied to disable NOR gates 112Aand 112B in FIG. 6B from passing any further clock pulses to thirteenstage shift register 116, thereby maintaining the parameter and datavalues stored therein at the time the access code is detected.

Pulse counter 118 counts each applied DATA signal pulse. Pulse counter118 includes latches 118A, 118B, 118C, 118D and 118E arranged as aconventional binary-counter; that is, with the Q output of each latchbeing coupled to the data input of that latch and to the clock input ofthe next succeeding latch. The signal to the clock input to latch 118A,the first stage of the pulse counter, is applied from the output oflatch 108B and is the data clock pulse which occurs in synchronism withthe fast clock signal just after the trailing edge of each DATA signalpulse. Pulse counter 118 also includes a NOR gate 118F having two inputsrespectively coupled to the Q outputs of latches 118D and 118E.Connected in this manner, the output of NOR gate 118F is a logic "0"until the count in pulse counter 118 reaches twenty-four, that is, untilboth latches 118D and 118E are set. At this point the output of NOR gate118F becomes logic "1", thereby enabling NAND gate 114B in access codecheck logic 114 to pass any outputs from the access code check gate114A. It should be noted that NOR gate 118F continues providing a logic"1" signal as the count of pulse counter 118 exceeds a count oftwenty-four.

Pulse counter 118 also includes NOR gate 118G having five inputsrespectively coupled to the Q outputs of each of latches 118A through118E. The output of NOR gate 118G is normally logic "1" and becomeslogic "0" whenever count of pulse counter 118 is at a nonzero count.This signal is applied to timeout logic 120 shown in FIG. 6C to causepulse counter 118 to be automatically reset after two stimulating pulseshave been provided by pulse generator 16 if the applied programmingsignal has not been accepted by that time. Such a situation could occurwhen an extraneous signal is detected by the demodulator and applied asa DATA pulse.

As previously mentioned, access code check logic 114 normally causes asignal to be provided from the Q output of latch 114D after thetwenty-fourth data bit has been applied to pulse generator 16. It shouldalso be recalled that the twenty-fourth data bit will be defined by theleading edge of the twenty-fifth DATA signal pulse. However, it ispossible that in positioning head 14 over pulse generator 16 extraneousnoise may be generated that could be construed by the RF demodulatorcircuitry included in circuit 42 as pulse bursts and, hence, additionalpulses could be included in the DATA signal applied to pulse generator16 and counted by pulse counter 118. In any event, when the access codeis found, it signifies that twenty-four bits have been applied and it isdesirable to reset pulse counter 118 to a count of twenty-four.

Reset to twenty-four logic 106 is provided to reset pulse counter 118 toa count of twenty-four and includes latch 106A, NAND gate 106B andinverter 106C. Latch 106A has the source of positive voltage +V coupledto its data input and the output from latch 114D coupled to its clockinput. The Q output from latch 106A is coupled to one input of NAND gate106B, the other input being the output of inverter 106C. A normaly logic"0" signal is applied to inverter 106C from reset logic 126 and hencethe output of inverter 106C is a logic "1" signal maintaining NAND gate106B enabled. In addition, latch 106A has a reset input coupled to theoutput of inverter 102D so that latch 106A is reset each time a DATAsignal pulse is applied to pulse generator 16.

When access code check logic 114 senses the access code and the Q outputof latch 114D becomes logic "1", latch 106A is clocked to a set state.The then logic "0" Q signal from latch 106A causes the output of NANDgate 106B to become logic "1". The output of NAND gate 106B is appliedto the reset inputs of latches 118A, 118B and 118C in pulse counter 118and the Q output of latch 106A is applied to the set input of latch118D. Thus, when latch 106A is set and the output of NAND gate 106Bbecoming logic "1", latches 118A, 118B and 118C become reset and latch118D becomes set and pulse counter 118 is forced set to a count oftwenty-four.

After the access code is decoded by access code check logic 114 and NORgates 112A and 112B are disabled from passing further clock pulses tothirteen stage shift register 116, the remaining portion of the DATAsignal manifests the eight bit parity code. This code is then stored ineight stage shift register 110 and the access code previously storedtherein is shifted out and lost. During this period pulse counter 118continues to be incremented during the transmission of the eight paritybits. After the eight parity bits have been transmitted, pulse counter118 overflows back to a count of zero. At the time this happens, the Qoutput from latch 118E will go from a logic "0" value to a logic "1"value, thereby causing a logic "0" to appear at the output of NOR gate118F. This logic "0" is applied through NAND gates 114B and 114C to thedata input of latch 114D as a logic "0" signal. Thus, if any furtherDATA signal pulses are transmitted, a logic "0" will be clocked intolatch 114D causing the Q output thereof to become logic "0". However,under normal circumstances, this should not occur.

The Q output from latch 118E in pulse counter 118 is applied to counteroverflow latch 104 and specifically to the clock input of latch 104Atherein. The data input to latch 104A is coupled to battery 44 voltageof +V volts. When pulse counter 118 overflows to a count of zero afterthe parity code is transmitted, thereby causing the Q signal from latch118E to change from logic "0" to logic "1", latch 104A becomes set, andthe Q output thereof becomes logic "0". The Q signal from latch 104A isprovided to enable gates within error check logic 122 to check theparity of the transmitted DATA signal.

Referring now to FIG. 6C and specifically parity check logic 124, thereis included thirteen two input EXCLUSIVE OR gates 124A through 124M anda single eight input NOR gate 124N. Parity check logic 124 is responsiveto the Q outputs from each stage of eight stage shift register 110 andto the Q outputs of each stage of thirteen stage shift register 116.Specifically, EXCLUSIVE OR gate 124A is responsive to Q output signalsfrom latches 116F and 110F, EXCLUSIVE OR gate 124B is responsive to Qoutput signals from latches 116G and 110G, EXCLUSIVE OR gate 124C isresponsive to Q output signals from latches 116H and 110H, EXCLUSIVE ORgate 124D is responsive to Q output signals from latches 116A and 116I,EXCLUSIVE OR gate 124E is responsive to Q output signals from latches116B and 116J, EXCLUSIVE OR gate 124F is responsive to the Q outputsignals from latches 116C and 116K, EXCLUSIVE OR gate 124G is responsiveto the Q output signals from latches 116D and 116L and EXCLUSIVE OR gate124H is responsive to the Q output signals from latches 116E and 116M.In addition, EXCLUSIVE OR gate 124I is responsive to the output signalsfrom EXCLUSIVE OR gate 124D and to the Q output of latch 110A, EXCLUSIVEOR gate 124J is responsive to the output signals from EXCLUSIVE OR gate124E and the Q output from latch 110B, EXCLUSIVE OR gate 124K isresponsive to the output signals from EXCLUSIVE OR gate 124F and the Qoutput from latch 110C, EXCLUSIVE OR gate 124L is responsive to theoutput signals from EXCLUSIVE OR gate 124G and the Q output from latch110D and EXCLUSIVE OR gate 124M is responsive to the output signals fromEXCLUSIVE OR gate 124H and the Q output from latch 110E. The outputsignals from each of EXCLUSIVE OR gates 124A, 124B, 124C, 124I, 124J,124K, 124L and 124M are applied as the inputs to NOR gate 124N, theoutput of which is applied as one input to NAND gate 122A in error checklogic 122, shown in FIG. 6A. The parity code applied to and stored ineight stage shift register 110 is calculated to be such that the outputof NOR gate 124N will be logic "1" when the data stored in thirteenstage shift register 116 is compared against the parity code byEXCLUSIVE OR gates 124A through 124M.

Referring again to FIG. 6A and specifically to error check logic 122,there is included NAND gate 122A, inverter 122B, NOR gates 122C and 122Dand latches 122E and 122F. The other input to NAND gate 122A in errorcheck logic 122 is coupled to the Q output of latch 114D, which shouldbe logic "1", assuming the access code was detected. If the parity alsochecks, the output of NAND gate 122A is logic "0" which, when appliedthrough inverter 122B, becomes logic "1". The output of inverter 122B isapplied to one input of NOR gate 122C and the output of NAND gate 122Ais applied to one input to NOR gate 122D. The other input of NOR gates122C and 122D is coupled to the Q output of latch 104A in counteroverflow latch 104, which as previously explained should be a logic "0"signal if the proper number of DATA signal pulses have been counted bypulse counter 118. Thus, if the access code is detected by access codecheck logic 114, the parity is proper, as determined by parity checklogic 124, and pulse counter 118 has counted at least thirty-two pulsesthereby setting counter overflow latch 104A, then the output from NORgate 122D will be a logic "1". In the event that any one or more ofthese checks fail, the output from NOR gate 122C will be a logic "1",which indicates that an error has occurred.

The output from NOR gate 122C is applied to the data input of latch 122Eand the output from NOR gate 122D is applied to the data input of latch122F. The clock inputs of both latches 122E and 122F are coupled to theslow clock logic 154 signal from FIG. 6K. Only one of latches 122E or122F will be set depending on which one of NOR gates 122C or 122Dapplies a logic "1" signal to the data input thereof. If all checks aremet, latch 122F will be set, thereby causing the Q output to becomelogic "1" and the Q output to become logic "0". These two outputs arethe accept signal and manifest to the remainder of the circuitry shownin FIGS. 6A through 6N that DATA signal has been accepted. On the otherhand, if one or more of the checks fail, latch 122E will become set andthe Q output signal therefrom will become logic "0". This signal is theerror signal from error check logic 122 and will indicate that an erroroccurred in the transmission or reception of the DATA signal.

The Q outputs from each of latches 122E and 122F are applied as inputsto NAND gate 104B in counter overflow latch 104, and the output of NANDgate 104B is applied to the reset of latch 104A. As long as both latches122E and 122F remain reset, the output from NAND gate 104B is a logic"0". However, as soon as one of the two latches 122E or 122F are set,the output from NAND gate 104B becomes logic "1", thereby resettingcounter overflow latch 104A. This, in turn, causes the outputs of bothNOR gate 122C and 122D to become logic "0" and the next slow clock logic154 signal pulse resets the set one of latches 122E and 122F. Thus, theerror or accept signal from latches 122E and 122F, respectively, is apulse signal having a duration of one slow clock cycle.

In the event error check logic 122 determines that an error occurred inthe transmission or detection of the DATA signal, it is desirable toreset much of the logic shown in FIGS. 6A and 6B. This is accomplishedby providing the Q output from latch 122E to one input NAND gate 126A inreset logic 126. The other two inputs to NAND gate 126A are coupled tothe outputs from reed switch logic 159 shown in FIG. 6M and timeoutlogic 120 shown in FIG. 6D. Whenever reed switch 46 is closed, the reedswitch logic 159 signal applied to NAND gate 126A will be a logic "1"and normally the signal from timeout logic 120 will be a logic "1".Hence, the output from NAND gate 126A is a logic "0" signal which isinverted by inverter 126B and applied as one input to NAND gate 126C.The other input of NAND gate 126C is a normally logic "1" signal fromwrite latch 128, which becomes logic "0" for one slow clock signal timeperiod after write latch 128 is set.

The output of NAND gate 126C will become logic "1" whenever any one ormore of the reed switch signal, timeout logic 120 signal, the errorsignal from latch 122E or write latch signal becomes logic "0". Inaddition, a logic "1" signal will be provided from the output of NANDgate 126A whenever any one of the reed switch, timeout logic 140 orerror signals from latch 122E become logic "0". The output from NANDgate 126C is applied to reset latches 118D and 118E in pulse counter118, to reset the access code latch 114D and through inverter 106C andNAND gate 106B to reset latches 118A, 118B and 118C in pulse counter118.

In the event that error check logic 122 finds that all of the checks aremet, latch 122F will be set. The Q output from latch 122F is applied tothe data input of write latch 128A and to the clock input of test latch130A. The slow clock signal is applied to the clock input of write latch128A and the Q output from latch 116M in thirteen stage shift register116 is applied to the data input of test latch 130A. The output fromNAND gate 126A in reset logic 126 is applied to the reset input of testlatch 130A and resets it each time the reed switch is open or timeoutlogic 120 provides a signal to NAND gate 126A or an error is found andlatch 122E is set.

Write latch 128A is set upon the occurrence of the first slow clockpulse following the setting of latch 122F (manifesting an acceptance ofthe DATA signal). When write latch 128A is set, the Q output becomeslogic "0" and is applied through NAND gate 126C in reset logic 126 tocause a resetting of pulse counter 118 and latch 114D. The Q output fromwrite latch 128A, which becomes logic "1", is applied to the inhibitlogic 134 shown in FIG. 6C.

Test latch 130A is clocked upon the occurrence of the logic "1" signalfrom latch 122F and becomes set if the data value stored in latch 116Mof thirteen stage shift register 116 is a logic "1", manifesting that atemporary programming condition is to occur. The Q output from testlatch 130A is applied as one input to memory strobe NOR gate 136A. Theother input to NOR gate 136A is the Q output from write latch 128A. Theoutput of NOR gate 136A will be a logic "1" only if write latch 128A isset and test latch 130A is not set, that is, only when a DATA signal hasbeen accepted and the decoding of the test bit indicates that apermanent programming change is to occur. The output of memory strobegate 136A is applied to parameter decode logic 138 is FIG. 6F to cause apermanent parameter signal to to provided therefrom. In addition, the Qoutput from test latch 130A is also applied to parameter decode logic138 and when the Q output from test latch 130A is a logic "1", parameterdecode 138 will provide a temporary parameter signal. The particularparameter signal provided will be determined by the data stored inlatches 116I, 116J, 116K and 116L of thirteen stage shift register 116.

Referring now to FIG. 6D, temporary memory 132 is shown and includestwelve stages, 132-1 throgh 132-12 inclusive, each of which areidentical. For convenience, only first stage 132-1 will be described. Itis understood that all other stages and the components thereof areidentical to and operate in the same manner as first stage 132-1. Thefirst stage 132-1 of temporary memory 132 includes tranmission gate132A, inverters 132B, 132C and 132D, and a transmission gate 132E. Atransmission gate, as used herein, is a gate which may be enabled by alogic "1" signal applied to the enable input thereof to cause the signalapplied to the data input thereof to be provided at the output thereof.Schematically, a transmission gate is shown as a square with the inputside receiving the data input, the output side providing the output andeither the top or bottom side receiving the enable input.

Transmission gate 132A has applied to its data input, the signal fromthe Q output from latch 116A in thirteen stage shift register 116. Eachof the remaining transmission gates corresponding to gate 132A isresponsive to one of the Q outputs from a corresponding latch 116Bthrough 116L. It should be noted that the Q output signal from latch116M from thirteen stage shift register 116 is not applied to temporarymemory 132. The output from transmission gate 132A is applied to theinput of inverter 132B, the output of which is applied to the inputs ofinverters 132C and 132D. The output of inverter 132C is applied to theinput of transmission gate 132E, the output of which is applied back tothe junction between the output of transmission gate 132A and the inputof inverter 132B. Tranmission gate 132A is enabled by a logic "1" acceptsignal from the Q output of latch 122F and transmission gate 132E isenabled by a logic "1" signal from the Q output of latch 122F. Theoutput from stage 132-1 to temporary memory 132 is taken from the outputof inverter 132D. In stages 132-2 through 132-12, outputs are taken fromeach stage from the inverter corresponding to inverter 132D. Inaddition, in the last four stages 132-9 through 132-12 of temporarymemory 132, a second output is taken from the output of the invertercorresponding to inverter 132B.

Each stage of temporary 132 operates as follows. Inverters 132B, 132Cand normally enabled transmission gate 132D form a memory circuit inthat the signal applied to inverter 132B is twice inverted and appliedat the output of transmission gate 132E where it is fedback to maintainthe same signal at the input of inverter 132B. This situation continuesas long as transmission gate 132E is enabled by latch 122F being reset.When latch 122F become set as a result of the acceptance of the DATAsignal, the Q output thereof is logic "1" for the time between slowclock pulses and transmission gate 132A is enabled and transmission gate132E is disabled. During this one pulse time, the signal provided at theQ output of latch 116A in thirteen stage shift register 116 is appliedtransmission gate 132A, inverted by inverter 132B and again inverted byinverter 132C. After the slow clock signal pulse period, when latch 122Fbecomes again reset, transmission gate 132A again becomes disabled andtransmission gate 132E again becomes enabled and thereby feeds back thesignal at the output of inverter 132C to the input of 132B and is storedin the memory circuit formed by inverters 132B, 132C and transmissiongate 132E. In this manner the data that is stored in thirteen stageshift register 116 is transmitted to temporary memory 132 each time anew programming signal is accepted and latch 122F is set. Since thetransmission gates corresponding to transmission gates 132A and 132E areenabled and disabled by the same signal from latch 122F, the storage bytemporary memory 132 of the twelve data bits in thirteen stage register116 occurs simultaneously. Further, since the output of each stage oftemporary memory 132 is taken between inverters 132B and 132C, it isnecessary to reinvert the signal by inverter 132B to make the signalprovided from inverter 132D the same at the signal provided throughtransmission gate 132A. In the case of the last four stages 132-9through 132-12 of temporary memory 132 which store the data bitsrelating to the parameter code, an additional output is taken directlyfrom the junction of inverters 132B and 132C. In the last four stages132-9 through 132-12, the signal from the inverter gate corresponding toinverter gate 132D is labeled as the "1" output and the signal from thejunction corresponding to the junction between inverters 132B and 132Cis labeled as the "0" output.

Referring now to inhibit logic 134 timeout logic 120 and inhibit datacode 142 in FIG. 6C, inhibit data decode 142 includes eight input NANDgate 142A having an input coupled to each of the first eight stages oftemporary memory 132. These stages store the data portion of theprogramming word transmitted to pulse generator 116. Whenever the dataportion of the code is all logic "1"'s or octal "377", the output fromNAND gate 142A is logic "0". Otherwise it is a logic "1".

Inhibit logic 134 includes NAND gate 134A, NOR gate 134B and latch 134C.One input to NAND gate 134A is provided from the inhibit parametersignal out of parameter decode circuit 138 shown in FIG. 6F and thesecond input to NAND gate 134A is provided from the Q output of testlatch 130A. The output from NAND gate 134A is provided as one input toNOR gate 134B, the other input of which is provided from the output ofinhibit data decode NAND gate 142A. The output of NOR gate 134B iscoupled to the data input of latch 134C. The clock input to latch 134Cis provided from the Q output of write latch 128A. The reset input oflatch 134C is coupled to the output of NAND gate 126A in reset logic 126and latch 134C is reset each time reed switch is closed, a signal isprovided from timeout logic 120, or an error is sensed in the receivedDATA signal and latch 122E is set.

Timeout logic 120 includes NAND gates 120A, 120B and 120C, each of whichhave two inputs and an output and latches 120D and 120E. The Q outputfrom latch 134C is applied as one input of NAND gate 120A, and theoutput of NOR gate 118G from pulse counter 118 is applied to the otherinput of NAND gate 120A. The Q output from latch 134C is applied to oneinput of NAND gate 120B, and the accept signal from the Q output oflatch 128A is applied to the other input of NAND gate 120B. The outputsfrom NAND gates 120A and 120B are coupled as the two inputs to NAND gate120C, the output of which is coupled to the reset inputs of each oflatch 120D and 120E. Latches 120D and 120E are coupled as a two stagecounter, that is the Q output of each is coupled to the data inputthereof, and the Q output of latch 120D is additionally coupled as theclock input of latch 120E. The clock input of latch 120D is coupled tothe recharge logic 164 signal which is a logic "1" pulse signal eachtime a recharge pulse is provided from digital circuit 40 to analogcircuit 42. The Q output from latch 120E is additionally applied as thetimeout signal to NAND gate 126A to cause a reset signal to be providedwhenever latches 120D and 120E are not reset prior to the occurrence oftwo pulse width logic 186 signals.

In normal operation inhibit logic latch 134C is reset and pulse counter118 contains a count of zero and thus the output of NOR gate 118G islogic "0". Hence, the timeout logic counter consisting of latches 120Dand 120E is maintained reset by a logic "1" signal appearing at theoutput of NAND gate 120C. However, in two instances it is possible toremove logic "1" from the reset inputs of latches 120D and 120E. Theinstances are first, that inhibit logic 134 has properly decoded aninhibit programming signal and second, that pulse counter 118 is notreset.

Referring to the inhibit programming situation, it should be recalledfrom Table I above that the inhibit feature can only be programmed inthe temporary mode and must be accompanied with a data portion of theprogramming word of octal "377", or all logic "1" bits. The "377" dataportion of the programming word is decoded by inhibit data decode logic142 shown in FIG. 6E and a logic "0" bit is provided from NAND gate 142Ato one input of NOR gate 134B. The inhibit parameter which is decoded bythe parameter decode 138 is provided as a logic "1" to NAND gate 134B.Since the inhibit feature must be in the temporary mode, test latch 130Awill be set and the Q output therefrom provided to NAND gate 134A willbe a logic "1". Also, the inhibit parameter signal from parameter decodelogic 138 becomes logic "1" whenever the inhibit feature is programmed.Thus, the output of NAND gate 134A to be a logic "0", which togetherwith logic "0" provided from gate 142A causes the output of NOR gate134B to be logic "1". When the write latch 128A is set by the nextoccurring slow clock pulse, it will set latch 134C to manifest the thenapplied logic "1" signal at the data input thereof, thereby causing theQ output to become logic "1" and the Q output to become logic "0". Thelogic "0" Q output from latch 134C is applied to output circuit 178shown in FIG. 6K to inhibit the provision of output signals beingprovided to analog circuit 42, which causes the cardiac stimulationpulses provided by pulse generator 16.

When the Q output of latch 134C becomes logic "0", the output from NANDgate 120A becomes a logic "1". When the Q output of latch 134C becomeslogic "1" and write latch 128A is reset by the next slow clock logic 154pulse, the output of NAND gate 120B becomes logic "1". Thus the outputof NAND gate 120C becomes logic "0", removing the reset condition fromlatches 120D and 120E and allowing the timeout counter to count tworecharge logic 164 pulse signals. After the second recharge logic 164signal is counted, the Q output of latch 120E becomes logic "0", which,when applied to NAND gate 126A causes a reset signal to be provided fromreset logic 126. Among other things, the output from NAND gate 126Acauses latch 134C to be reset which, in turn, removes the inhibition tooutput circuit 178 and causes the output of NAND gate 120C to becomelogic "1" thereby providing the reset signal to latches 120D and 120E.

However, if a second inhibit programming signal is provided byprogrammer 12 prior to the time latch 120E in timeout logic 120 is setby the second pulse width logic 186 pulse write latch 128A is set,thereby causing a logic "1" signal to be applied to NAND gate 120B,which in turn causes a logic "0" signal to be applied to NAND gate 120C.This results in a logic "1" signal at the output of NAND gate 120C whichresets latches 120D and 120E so that a new two pulse period is initiatedand the inhibition remains. Otherwise the inhibition would be endedautomatically upon the setting of latch 120E. To facilitate thecontinual application of inhibit programming signals, there is providedon programmer 12, function key 26 which must be held depressed wheneverthe inhibit parameter is programmed. The holding of this function keywill cause continuous transmission of the inhibit programming signals topulse generator 16 thereby preventing the counter in timeout logic 120from timing out and causing a reset signal to be applied. To remove theinhibited condition a new programming signal should be sent or functionkey 26 should be released, thereby allowing the counter in timeout logic120 to time out.

The second situation in which the reset signal is removed from latches120D and 120E occurs whenever pulse counter 118 contains a non-zerocount. This normally occurs during the reception of the DATA programmingsignal, which lasts for a period much shorter than the timeout period oftwo recharge logic 164 pulses. However, it is possible that muscleartifact or some electrical noise may result in the detection by the RFdemodulator of a programming pulse and the provision of a DATA signalpulse. If this occurs, pulse counter 118 is incremented to a non-zerocount. This results in NOR gate 118G providing a logic "0" signal toNAND gate 120A and ultimately the output of NAND gate 120C becominglogic "0", so as to remove the reset from latches 120D and 120E. Aftertwo recharge logic 164 pulses, latch 120E is set, thereby causing areset signal from gate 126C to reset pulse counter 118 to a count ofzero.

Referring now to FIG. 6F, parameter decode logic 138 includes 11 NORgates 138A, 138B, 138C, 138D, 138E, 138F, 138G, 138H, 138I, 138J, and138K. Each of NOR gates 138A through 138K are coupled to one of the twooutputs from each of the last four stages of temporary memory 132 andare used to decode the particular one of the eleven parameters that canbe programmed for pulse generator 16. Normally, the outputs of each NORgate 138A through 138K is logic "0". However, whenever all of thesignals applied to one of the NOR gates 138A through 138K are logic "0",the output becomes logic "1", signifying that the parameter with whichthat one NOR gate is associated is being modified.

The "1" outputs from each of stages 132-9 through 132-12 are applied toNOR gate 138A which decodes the inhibits parameter whenever all "0" bitsare stored in stages 132-9 through 132-12 of temporary memory 132. The"0" outputs from each of stages 132-9 through 132-12 are applied to NORgate 138B which decodes the output parameter whenever all "1" bits arestored in each of stages 132-9 through 132-12. The "1" outputs fromstages 132-9 and 132-10 and the "0" output from stages 132-11 and 132-12are applied to NCR gate 138C which decodes the hysteresis parameter. The"0" outputs from stages 132-9, 132-10, 132-12 and the "1" output fromstage 132-11 are applied to NOR gate 138D which decodes the sensitivityparameter. The "1" output from stages 132-9, 132-10, 132-11 and the "0"output from stage 132-12 are all applied to NOR gate 138E which decodesthe refractory parameter. The "0" outputs from 132-9 and 132-11 and132-12 and the "1" output from stage 132-10 are applied to NOR gate 138Fwhich decodes the R-sync parameter. The "0" outputs from stages 132-9and 132-12 and "1" output from stages 132-10 and 132-11 are applied toNOR gate 138G which decodes the rate parameter. The "1" output fromstages 132-9 and 132-11 and the "0" outputs from stages 132-10 and132-12 are applied NOR gate 138H which decodes the pulse widthparameter. The "1" output from stage 132-9 and the "0" outputs from132-10, 132-11 and 132-12 are applied to NOR gate 138I which decodes thehigh rate parameter. The "0" output from stage 132-9 and the "1" outputfrom stages 132-10, 132-11 and 132-12 are applied to NOR gate 138J whichdecodes the automatic threshold parameter. Finally the "1" output fromstages 132-9, 132-11, and 132-12 and the "0" output from stage 132-10are applied to NOR gate 132K which decodes the demand parameter.

Parameter decode logic 138 also includes seventeen two input NAND gates,138L, 138M, 138N, 138O, 138P, 138Q, 138R, 138S, 138T, 138U, 138V, 138W,138X, 138Y, 138Z, 138AA and 138BB. One of the inputs of each of NANDgates 138L through 138S are coupled to the output of memory strobe gate136A and one of the inputs of each of NAND gates 138T through 138BB iscoupled to the Q output of test latch 130. It should be recalled thatwhenever a pulse appears at the output of memory strobe gate 136A, theprogramming signal applied to pulse generator 16 is manifesting apermanent programming change is to occur. On the other hand whenevertest latch 130A is set, the programming signal applied to pulsegenerator 16 is manifesting a temporary program charge. Hence, a signalwill appear at the output of one of NAND gates 138L through 138S, onlywhen a permanent programming change is to occur and a signal will appearat the output of one of NAND gates 138T through 138BB only whenever atemporary programming change is to occur except when that temporarychange is the inhibit parameter, in which case the output from inhibitdecoding gate 138A is provided directly to inhibit logic 134 aspreviously explained.

The output parameter signal from NOR gate 138B is provided to the otherinput of NAND gates 138M and 138Z; the hysteresis parameter signal fromNOR gate 138C is provided to NAND gate 138S; the sensitivity parametersignal from NOR gate 138D is provided to NAND gates 138R and 138U; therefractory parameter signal from NOR gate 138E is provided to NAND gates138Q and 138V; the R-sync parameter signal from NOR gate 138F isprovided to NAND gates 138P and 138W; the rate parameter signal from NORgate 138G is provided to NAND gates 138O and 138X; the pulse widthparameter signal from NOR gate 138H is provided to NAND gates 138N and138Y; the high rate parameter signal from NOR gate 138I is provided toNAND gate 138T; the auto threshold parameter signal from NOR gate 138Jis provided to NAND gate 138AA and the demand parameter signal from NORgate 138K is provided to NAND gates 138L and 138BB. In addition, thedemand parameter signal from NOR gate 138K is applied through aninverter 138CC to become the DEMAND parameter signal.

Referring now to FIGS. 6E, 6G and 6H, permanent memory 140 is shown. Forconvenience permanent memory 140 has been broken into blocks indicatingthe particular function of that portion of that memory. In the case ofthe sensitivity memory and refractory memory, both of which are twostages and shown in FIG. 6E, a detailed showing of each of the elementsis given. The two stage hysteresis portion of memory 140, the one stageoutput portion of memory 140 and the one stage R-sync portion of memory140, are shown in FIG. 6G in a block format with input and output linesto the block, it being understood that these memories portions areidentical to those shown in FIG. 6E with the exception of hysteresismemory 140 does not include certain components as will be explainedhereafter. In addition the six stages of the pulse width portion ofmemory 140 and the eight stages of the rate portion of memory 140 areshown in FIG. 6H in block format and each have identical componentstages to that shown in FIG. 6E.

Reference is now made specifically to two stages refractory portion ofmemory 140 shown in FIG. 6E. For brevity only one stage will bedescribed, it being understood that the second stage is identical inboth construction and operation to the first stage except as statedotherwise with regard to each specific item. The first stage ofrefractory memory 140 includes a memory loop consisting of inverters140A and 140B and transmission gate 140C. The output of inverter 140A iscoupled as the input of inverter 140B and output of inverter 140B iscoupled to the input of transmission gate 140C, the output of which iscoupled back to the input of inverter 140A. Transmission gate 140C isnormally enabled by a logic "1" signal being applied thereto from gate138Q in parameter decode logic 138 which normally provides a logic "1"signal as long as a permanent refractory programming change is notprogrammed. In the event such a permanent refractory change isprogrammed the output from gate 138Q becomes logic "0". In such a casetransmission gate 140C is closed by the logic "0" signal from gate 138Q,which signal is inverted by inverter 140E and applied to enabledtransmission gate 140D. The output from stage 132-1 of temporary memory132 is applied to the input of transmission gate 140D and for the onepulse time duration that transmission gate 140D is enabled, a new bitfrom stage 132-1 is applied to and stored in the first stage of therefractory portion of memory 140.

The output from the first stage of the refractory portion of memory 140is taken from the output of inverter 140A and applied through a secondinverter 140H and normally enabled transmission gate 140G to an outputfrom that stage. In the case of the refractory portion of memory 140,the output is the Refractory 1 signal which is applied to refractorylogic 168 in FIG. 6N. In the case of the remainder of the memoryportion, the output is applied to different portions of the circuitshown in the remainder of FIG. 6.

Transmission gate 140G is enabled by a logic "1" signal applied to theenable input thereof from the output of NAND gate 138V in parameterdecode logic 138, which provides a logic "1" signal unless a temporarysensitivity programming change is to occur, in which case the outputfrom gate 138V is logic "0" for as long as the temporary programmingchange is present.

In the event that a temporary programming situation is to occur thelogic "0" signal from gate 138V disables transmission gate 140G andafter being inverted by inverter 140I enables transmission gate 140F.The output from stage 132-1 from temporary memory also is applied to theinput of transmission gate 140F, which, when enabled, provides a signalto the output stage of the refractory portion of memory 140.

The second stage of the refractory portion of memory 140 is identical tothe first stage except that the input to the transmission gatecorresponding to gates 140D and 140F is applied from the second stage132-2 of temporary memory 132 and the output signal is the Refractory 2signal. The output of inverter 140I is also applied as an output of therefractory portion of memory 140 and is the Temporary Refractory signalapplied to demand logic 190.

The sensitivity portion of memory 140 is also shown in FIG. 6E and isidentical to the refractory portion except that the parameter signalsprovided thereto from parameter decode 138 are provided from gates 138Rfor the permanent parameter change and from gate 138U for the temporaryparameter change. In addition, the sensitivity portion of memory 140includes an additional transmission gate 140J having its data inputconnected to the first stage at the junction of the transmission gatescorresponding to gates 140F and 140G and its enable input connected tothe output of the second stage of the sensitivity portion of memory 140.The output of transmission gate 140J is to output of the sensitivityportion of memory 140. The purpose of transmission gate 140J is to causethe output from the first stage to float when there is a logic "1"output from the second stage.

Referring now to FIG. 6G, the two stages of the hysteresis portion ofmemory 140 are identical to the refractory portion except that there areno corresponding elements to transmission gates 140F and 140G orinverters 140H or 140I. The reason for this is that the hysteresisportion of memory 140 is not programmable in the temporary mode; hence,there need not be any temporary programming components such astransmission gates 140F and 140G and inverter 140H or inverter 140I.Further, there is no input from a temporary parameter gate such as gate138U, nor is there an output corresponding to the Temporary Refractoryoutput.

The output portion and the R-sync portion of memory 140 are each onestage and substantially identical to the one stage described for therefractory memory portion 140 except that there is no signal providedfrom the output portion which corresponds to the Temporary Refractorysignal. The inputs to the output portion and the R-sync portion ofmemory 140 are from stage 132-1 of temporary memory 132 and each isresponsive to both a permanent and a temporary parameter signal fromparameter decode logic 138.

Referring now to FIG. 6H and specifically to the pulse width portion andthe rate portion of memory 140, the pulse width portion of memory 140includes six stages, each of which is identical to the one stagedescribed with respect to the refractory portion of memory 140 in FIG.6E. The inputs to each of the six stages come respectively from thefirst through sixth stages 132-1 through 132-6 of temporary memory 132and the permanent parameter signal is provided from gate 138N ofparameter decode logic 138N.

The temporary parameter selection signal for the pulse width portion ofmemory 140 is provided from the output of inverter 140K, which invertsthe output of a two input NAND gate 140L. The two inputs to NAND gate140L are provided from the outputs of NAND gates 138Y and 138AA whichrespectively provide a signal in response to a temporary pulse widthparameter program signal and a signal in response to an auto thresholdparameter signal. It should be noted that there is no signal providedfrom the pulse width portion of memory 140 corresponding to theTemporary Refractory signal provided from the refractory portion ofmemory 140.

The rate portion of memory 140 consists of eight stages, each identicalto the described first stage of refractory memory 140 and each of whichis responsive to a respective one of the first eight stages 132-1through 132-8 of temporary memory 132. The permanent parameter decodeline is coupled to the output of NAND gate 138O in parameter decodelogic 138, and the temporary parameter signal is applied from the outputof an inverter 140M, which inverts the output applied from two inputNAND gate 140N. The two inputs applied to NAND gate 140D are providedfrom the output of NAND gates 138T and 138X in parameter decode logic138, which respectively provides a signal in response to the high rateparameter being programmed, and the rate being programmed in thetemporary mode. Further, there is no signal provided from the rateportion of memory 140 corresponding to the Temporary Refractory signalprovided from refractory portion of memory 140.

Referring again to FIG. 6G, threshold check logic 160 will be described.Threshold check logic 160 includes an inverter 160A, having theautothreshold parameter signal applied thereto from NAND gate 138AA inparameter decode logic 138 and providing a normally logic "0" outputsignal to one input of two input NAND gate 160B. The other input of NANDgate 160B is coupled to the normally logic "0" write latch 128 signalfrom FIG. 6A. The normally logic "1" output signal of NAND gate 160B iscoupled to one input of a second NAND gate 160C, the other input ofwhich is coupled to the Q output of the reed switch latch 159A signalprovided from reed switch logic 159 in FIG. 6M. The reed switch latch159A signal is logic "1" whenever reed switch 46 is closed. The outputof NAND gate 160C is coupled to the reset input of a latch 160D, causingthe Q output thereof to become logic "1". The Q output from latch 160Dand logic "1" reed switch latch 159A signal are coupled to the twoinputs of NAND gate 160E, the output of which is coupled to the resetinputs of latches 160E and 160G. Latch 160F has the Q signal from latch164A in recharge logic 164 coupled to the clock input thereof and itsown Q signal coupled to the data input thereof. The Q signal from latch160F is also coupled to the clock input of latch 160G, which has its ownQ signal coupled to its data input. The Q signal from latch 160G iscoupled to the clock input of latch 160D. In addition, the set input tolatch 160D is coupled to the Q output of the access code check logiclatch 114D in FIG. 6A.

The Q outputs from latches 160F and 160G and the Q output from latch186D in pulse width logic 186 are coupled to the three inputs of NANDgate 160H, the output of which is coupled to fast counter 152 to causeone pulse to be provided having a pulse width of 75% of the programmedpulse width. Finally, the Q outputs of latches 160F and 160G are coupledto the two inputs of NAND gate 160I, the output of which is coupled torate decode logic 172 to cause three pulses to be provided at a rate of100 pulses per minute.

In operation, threshold check logic 160 operates in only two situations,namely, first the closure of reed switch 46 and second, in response tothe programming of the autothreshold function. Prior to the time reedswitch 46 and when the reed switch logic latch 159A signal is logic "0",the output from both NAND gates 160C and 160E is logic "1" and thismaintains latches 160D, 160F and 160G reset. When reed switch 46 isclosed and the reed switch logic latch signal becomes logic "1", theoutputs from both NAND gates 160C and 160E become logic "0", therebyremoving the reset signal from latches 160D, 160F and 160G. Upon theoccurrence of the rising edge of the next signal from the Q output ofrecharge logic latch 164A, latch 160A becomes set, thereby causing theoutput of NAND gate 160I to become logic "0", and enable pulses to beprovided at the greater of 100 pulses per second, or the programmedrate. After two further recharge logic latch 164A pulses, both latches160F and 160G are set, thereby enabling NAND gate 160H to provide alogic "0" pulse during the next pulse width logic signal applied theretofrom the Q output of pulse width logic latch 186D. This signal increasesthe rate at which fast counter 152 counts so as to allow for the 75%pulse width pulse. The next recharge logic latch 164A signal causeslatches 160F and 160G to become reset and latch 160D to become set. Thethen logic "0" Q signal from latch 160D causes a logic "1" signal at theoutput of NAND gate 160E, which maintains latches 160F and 160G in areset condition with latches 160F and 160G reset, NAND gate 160Iprovides a logic "1" signal, and pulses at the programmed rate areprovided. This situation continues as long as latch 160D remains set.

Latch 160D can only be reset if either reed switch 46 is opened or ifthe autothreshold function is programmed. When the autothresholdfunction is programmed, the write latch 128A signal becomes logic "1"and the autothreshold parameter signal from NAND gate 138AA becomeslogic "0" at the same time. With the autothreshold parameter signalbeing inverted by inverter 160A, the output NAND gate 160B becomes logic"0" and the output of NAND gate 160C becomes logic "1" and resets latch160D, causing a logic "0" at the output of NAND gate 160E. Thereafterthreshold check logic 160 operates as described in the precedingparagraph. If for some reason, a new programming signal is receivedprior to the completion of the threshold check function, the access codecheck signal from latch 114D sets latch 160E, thereby terminating thethreshold check.

Referring now to FIG. 6I, fast counter 152 is shown and consists of ninelatches, 152A, 152B, 152C, 152D, 152E, 152F, 152G, 152H and 152I. Inaddition, fast counter 152 includes three two input NOR gates, 152J,152K and 152L. The clock inputs to latches 152A and 152B are coupled tothe clock signal at the output of clock logic 158. The clock input tothe remaining latches 152C through 152I is coupled to the Q output fromthe preceding stage, 152B through 152H respectively. The data inputs ofeach of stages 152C through 152I are coupled to the Q output of thatstage. The data input to latch 152A is coupled from the output of NORgate 152K and the data input to latch 152B is coupled from the Q outputof latch 152A. The reset inputs of each of the latches 152A through 152Iare coupled together and to the slow clock logic 154 signal.

NOR gate 152J has one input coupled to the Q output of latch 152A and asecond input coupled from the output of gate 160H in threshold checklogic 160. The output of NOR gate 152J is coupled to one input of NORgate 152K, the other input of which is the Q output from latch 152B. NORgate 152L has one input coupled to the Q output from latch 152C and thesecond input coupled to the output of inverter 159B in reed switch logic159. The output of NOR gate 152L is coupled to the clock inputs oflatches 108B and 108C in data decode logic 108.

In operation, fast counter 152 is a normal divide by 256 divider circuitthat provides a single pulse at the Q output of latch 152I for every 256clock pulses applied to the clock input of latch 152A, as long as theoutput signal from NAND gate 160H in threshold check logic 160 is logic"1". In other words, latches 152A and 152B, and NOR gates 152J and 152Koperate as a divided by four counting system. However, when the outputfrom NAND gate 160H becomes logic "0", latches 152A, 152B in conjunctionwith NOR gates 152J and 152K operate as a divided by three network. Atthis time, fast counter 152 operates as a divided by 192 counter, ratherthan a divided by 256 counter. The output of fast counter 152 is the Qoutput from latch 152I, which becomes logic "0" after the divisor numberof pulses are applied to the clock input of latch 152A.

Referring now to slow clock logic 154 in FIG. 6K the Q outputs fromlatches 152B, 152C, 152D and 152E are applied as the four inputs to NORgate 154A. The output of NOR gate 154A is coupled as one input to NORgate 154B, with the other input thereof being coupled to the Q output ofbattery latch 162A. The output from NOR gate 154B is applied as oneinput to NOR gate 154C and the Q output from latch 154I is applied asthe second input to NOR gate 154C.

As long as battery latch 162A remains set indicating that battery 44 isproviding a voltage above a certain level, it is desirable that slowclock logic 154 provide a pulse each time latch 152I in fast counter 152becomes set. This normally will occur at a rate of approximately 127 hzexcept that when NAND gate 160H in threshold check logic 160 isproviding a logic "0", the slow clock signal will be at a rate ofapproximately 113 hz. However, when battery latch 162A becomes reset asa result of the voltage provided by battery 44 falling below a givenvalue, it is desirable to decrease the slow clock signal rate byapproximately 10%. Thus, if Q output from battery latch 162A is logic"1", as is the case with normal voltage, the output of NOR gate 154Bwill always be logic "0" and NOR gate 154C will provide a logic "1"output each time latch 152I is set and the Q output thereof becomeslogic "0". However, if the battery voltage drops below a desired level,battery latch 162A will no longer be set and a logic "0" signal will beapplied to NOR gate 154B from battery latch 162A. In this instance, theoutput of NOR gate 154B will be a logic "1" until the output of NOR gate154A becomes logic "0", which occurs when latches 152B, 152C, 152D and152E are all set. At this time, if latch 154I is set the output of NORgate 154A becomes logic "1", causing the output of NOR gate of 154B tobecome logic "0" and enabling a logic "1" output signal to be providedat the output of NOR gate 154C. By selecting the Q outputs of latches152B, 152C, 152D and 152E as the inputs to enable NOR gate 154A, thechain of pulses provided at the output of NOR gate 154C will be at arate approximately 10% slower than are the pulses provided when batterylatch 162A is set.

The output from NOR gate 154C is applied to one input of NOR gate 154D,the other input of which is coupled to the normally logic "0" signalfrom the output of NAND gate 154E. The output from NOR gate 154D isapplied as one input to NOR gate 154F, the output of which is applied tothe data input of latch 154G. The other input to NOR gate 154F iscoupled to the Q output of latch 154G.

Slow clock logic 154 also includes NOR gates 154H and 154I and inverter154J coupled in the clock circuit to latch 154G. The two inputs to NORgate 154H are from the output of NOR gate 154F and the Q output of latch154G. The two inputs to NOR gate 154I are from the output of NOR gate154H and the clock signal from clock logic 158 and the output from NORgate 154I is applied through inverter to the clock input of latch 154G.The Q output from latch 154G is applied to the reset input of each ofthe latches 152A through 152I in fast counter 152 to reset them so thatthe count of fast counter 152 is zero after each slow clock pulse isprovided. The reason that the rate of slow clock logic 154 pulses is 127hz is that two additional clock logic 158 pulse period times arerequired, one to cause the resetting of fast counter 152 and one toallow for the setting of latch 154G. Thus the rate of slow clock logic154 pulses is 32,768 hz divided by (256+2) or 127 hz.

The two inputs to NAND gate 154E are provided from the Q output ofpre-resync latch 184A and the Q output of post-resync logic latch 187A.As will be explained in detail hereinafter, these two latches are usedto resync the system timing when the VCO is enabled and later disabledduring the pulse width time measurement. The timing resync isaccomplished by resetting fast counter 152 both before and after thepulse width logic 186 pulse signal is provided, or in other words,whenever either pre-resync latch 184A or post-resync latch 187A are set.This is accomplished by the output of NAND gate 154E becoming a logic"0", thereby causing the output from NAND gate 154D to become logic "1"whenever either the pre-resync latch 184A or the post-resync latch 187Aare set. Thus, the output from NOR gate 154D becomes logic "0" andallows latch 154G to then be set. Thus, two additional slow clock logic154 pulses are provided to resync the timing when VCO pulses areapplied.

Referring now to FIG. 6L, slow counter 156 includes eight latches, 156A,156B, 156C, 156D, 156E, 156F, 156G and 156H. The slow clock logic signalfrom latch 154G in FIG. 6K is applied to the clock input of latch 156A.The Q output from each of latches 156A through 156G is applied to theclock input of the next succeeding latches 156B through 156H,respectively, and the data input of each latch 156A through 156H iscoupled to the Q output of that latch. The set inputs of latches 156A,156B, 156C, 156D, 156G and 156H, and the reset inputs of latches 156Eand 156F are coupled together and to the Q output from latch 164A inrecharge logic 164. Thus, slow counter 156 is reset to a count of 208each time the signal is provided to the set and reset inputs thereoffrom recharge logic 164. It should be noted that at a count of 208, itrequires just under 400 msec for slow counter 156 to count the 127 hzslow clock logic 154 signal until slow counter 156 achieves a full countand overflows back to a zero count. As previously noted, this 400 msectime period is utilized for two purposes: (1) as a 400 msec refractorytime, and (2) as a time during which no pulse width logic 186 pulses canbe provided from the digital circuitry shown in FIGS. 6A through 6N, orin other words, as a rate limit time.

Referring now to FIG. J, the Q outputs from each of the latches 156Athrough 156H and slow counter 156 are applied respectively to one inputof each of the EXCLUSIVE NOR gates 172A, 172B, 172C, 172D, 172E, 172F,172G and 172H, respectively, in rate control logic 172. The other inputto each of the EXCLUSIVE NOR gates 172A through 172H is applied from oneof the stages of the rate memory portion of memory 140. The output ofeach of EXCLUSIVE NOR gates 172A through 172H is applied to an input ofeight input NAND gate 172I, the output of which is applied to one inputto three input NAND gate 172L. The other two inputs to NAND gate 172Lare normally logic "1". The output from NAND gate 172L is applied to thedata input of latch 172M and the slow clock logic 154 signal providedfrom the output of latch 154G is applied to the clock input of latch172M. The Q output from latch 164D in recharge logic 164, which isprovided to the set and reset inputs of the latches is slow counter 156,is also provided to the reset input to latch 172M. The Q output fromlatch 172M is provided as a second input to NAND gate 172L.

The Q output from each of latches 156A, 156D, 156E, and the Q outputfrom latch 156H in slow counter 156 are all applied as inputs to NANDgate 172N. The output of NAND gate 172N is applied through inverter 172Oto one input of NAND gate 172P. The other input to NAND gate 172P isprovided from the output of NAND gate 160I in threshold check logic 160,and is normally a logic "0" signal, except during the period of time thethreshold check function is occurring. The normal logic "1" output fromNAND gate 172P is provided as the third input to NAND gate 172L.

Rate control logic 172 operates as follows. As the slow counter 156count is incremented with each slow clock logic 154 pulse, the countthereof is compared with the code programmed into the rate portion ofmemory 140 by EXCLUSIVE NOR gates 172A through 172H. When the comparisonis found, the output of each of the EXCLUSIVE NOR gates 172A through172H is logic "1", causing the output of NAND gate 172I to become logic"0". When the comparison causes the output of NAND gate 172L to becomelogic "1" and on the next slow clock logic 154 pulse signal, latch 172Mis set causing the Q output to become logic "0", and the Q output tobecome logic "1". The logic "0" Q output maintains the output of NANDgate 172L at a logic "1" state so that with each succeeding slow clocklogic 154 pulse, latch 172N is maintained in a set condition.

In the event that a threshold check series of pulses is to be providedas a result of either the closure of reed switch 46 or the provision ofthe auto threshold parameter signal from NAND gate 138AA in parameterdecode logic 138, the pulse width logic 186 pulse immediately followingeither the closure of reed switch 46 or the provision of the autothreshold parameter signal will occur at a normal rate and will setlatch 160F. The next pulse width logic 186 pulse will cause latch 160Gto be set. This in turn causes the output of NAND gate 160I to becomelogic "1" which enables NAND gate 172P to pass the signals from NANDgate 172N as inverted by inverter 172O. It should be noted that theoutput from NAND gate 172N will become logic "1" approximately 600 msecafter slow counter 156 is reset, which corresponds to a rate of 100 bpm.The output from NAND gate 172P is then provided to NAND gate 172L tocause latch 172M to be set on the immediately following slow clock logic154 pulse. This continues as long as NAND gate 160I provides the logic"1" signal, which is for a period during which two additional pulses atthe 100 bpm rate are provided through gate 172P and 172L.

The Q output from latch 172M in rate control logic 172 is applied to oneinput of hysteresis gate 182A, shown in FIG. 6K. The other input ofhysteresis gate 182A is normally a logic "1" signal provided fromhysteresis logic 174, as shown in FIG. 6L. However, both signals applyto hysteresis gate 182A are logic "1", a logic "0" appears at the outputthereof and is provided to one input of NAND gate 180A in digital ratelimit logic 180, shown in FIG. 6M.

Referring now to FIG. 6L, hysteresis logic 174 may be programmed to haveany one of three different lower hysteresis rates of 40, 50 or 60 bpm,or to be disabled. The particular programmed lower hysteresis rate orthe disabled condition is controlled by the two outputs from thehysteresis portion of memory 140, shown in FIG. 6G. The three hysteresisrates are controlled by NAND gates 174A, 174B and 174C. The hysteresisdisabled condition is controlled by NAND gate 174D. The upper outputfrom the hysteresis portion of memory 140 is applied as one input toNAND gates 174C and 174D and the lower output from the hysteresisportion of memory 140 is applied to NAND gates 174B and 174D. Inaddition, the upper output from the hysteresis portion of memory 140 isapplied through inverter 174E to inputs of NAND gates 174A and 174B, andthe lower output from the hysteresis portion of memory 140 is appliedthrough inverter 174F to NAND gates 174A and 174C. In addition, the 400msec signal from the Q output from latch 166C in overflow logic 166 isapplied to each of NAND gates 174A, 174B and 174C. Further, the Qoutputs from latches 156C, 156D and 156G are applied to the remaininginputs of NAND gate 174A, the Q outputs from latches 156B, 156C, 156Fand 156G are applied to the remaining inputs of NAND gate 174B and the Qoutputs from latches 156C, 156D and 156H are applied to the remaininginputs of NAND gate 174C.

The outputs from each of NAND gates 174A, 174B and 174C are applied asthe three inputs to NAND gate 174G, the output of which is applied tothe data input of latch 174H. The clock input to latch 174H is the slowclock logic 154 signal provided from the Q output of latch 154G in FIG.6K.

Normally the output signals from NAND gates 174A, 174B and 174C arelogic "1", thereby rendering the output from NAND gate 174F as a logic"0" signal. Hence, latch 174H is continually maintained in a resetcondition by the slow clock logic 154 pulse signals applied to the clockinput thereof. However, when one of the NAND gates 174A, 174B or 174C isselected by the outputs from the hysteresis portion of memory 140, alogic "0" signal will appear at the output thereof at the time slowcounter 156 has counted to a count such that the inputs of thatparticular gate are all logic "1". At that time, a logic "0" signal willappear at the output of that selected one of the NAND gates 174A, 174Bor 174C, which will cause the output of NAND gate 174G to become logic"1". This in turn will cause latch 174H to be set by the next slow clocksignal.

The Q signal from latch 174H is applied as one input to NAND gate 174Iand the output from NAND gate 174D is applied as a second input to NANDgate 174I. Further, the Q output from reed switch latch 159A in FIG. 6Jis applied as a third input to NAND gate 174I. Each of the three signalsapplied to NAND gate 174I is normally a logic "1" and hence the outputfrom NAND gate 174H is normally a logic "0" signal, which is applied tothe set input of latch 174J. The reset input to latch 174J is coupled tothe Q output from latch 170A, in reversion and sense reset logic 170.The Q output from latch 174J is coupled to the second input ofhysteresis gate 182A in FIG. 6K and as long as latch 174J is set,hysteresis gate 182A is enabled to pass the signals from rate decodelogic 172.

Latch 170A is normally maintained in a set condition and can only becomereset in rsponse to an acceptable SENSE signal from analog circuit 42.Thus, the signal applied to the reset input of latch 174J is normallylogic "0" and becomes logic "1" in response to the sensing of anaturally occurring QRS signal by the sense amplifier. When such anatural QRS signal is sensed and latch 174J becomes reset, the Q outputthereof becomes logic "0", thereby disabling hysteresis gate 182A.Hysteresis gate 182A will now remain disabled until such time as latch174J is set by a logic "1" signal from NAND gate 174I, which occurs as aresult of logic "0" signal from the output from one of NAND gates 174A,174B or 174C, causing latch 174H to be set and provide a logic "0"signal to NAND gate 174I. Of course, if another natural QRS signal weresensed in the meantime, slow counter 156 would be reset and never reacha count sufficient for NAND gates 174A, 174B or 174C to provide a logic"0" signal.

On the other hand, if latch 174J does become set and hysteresis gate 182is enabled to pass signals provided thereto from rate control logic 172,pulse width logic 186 will provide signals at the rate determined by theprogrammed code of pulse generator 16. As long as stimulating pulses areprovided, latch 174J will remain set. It should be noted that latch 174Jwill remain set when both signals applied to NAND gate 174D are logic"1" or when reed switch 46 is closed and latch 159A in reed switch logicis set.

Assuming latch 174J is set and hysteresis gate 182A is enabled, thesignals decoded in rate decode logic 172 will be applied through andinverted by NAND gate 182A, so that a logic "0" signal is applied as oneinput to NAND gate 180A in digital rate limit logic 180, each time slowcounter 156 has counted to the value set into the rate portion of memory140 and a comparison is made by EXCLUSIVE NOR gates 172A through 172H inrate decode logic 172.

Before describing digital rate limit logic 180, an understanding must behad of overflow logic 166 and gate 192 shown in FIG. 6M and of verifypulse logic 188 in FIG. 6I. Referring first to gate logic 192 in FIG.6M, there is included transmission gate 192A and NAND gate 192B havingan output coupled to the control input of transmission gate 192A. Theinput to transmission gate is coupled to a ground or logic "0" signaland the output is coupled to the analog rate limit signal input pad.This pad is the input pad to which the rate limit signal from analogcircuit 42 is provided. It should be recalled that the analog rate limitsignal provided from analog circuit 42 is a logic "1" signal from thetime a cardiac stimulating pulse is provided until a defined rate limittime thereafter, which may be on the order of 462 msec to give a ratelimit frequency of 130 bpm. In certain circumstances, it is desirable tobe able to cause pulses to be provided at a rate greater than the analograte limit of 130 bpm. These circumstances include the provision of theverify pulse at a time of 100 msec following a normal stimulating orsynchronized pulse to indicate that a permanently programmed change hasbeen entered into memory 140. Another situation in which it is desirableto provide pulses at a rate exceeding the analog rate limit is duringthe programming of a high rate parameter in the temporary mode. Such ahigh rate programming may be used in situations where the pacemaker isutilized as an atrial pacemaker where it is desirable to drive theatrium at a high rate.

Gate 192 is provided to accomodate the two situations of verify pulseand high rate programming in which it is desired that the analog ratelimit be overridden. In order to accomplish this, two normally logic "1"signals are applied as the inputs to NAND gate 192B, one from NAND gate138T in parameter decode logic 138 and the other from verify pulse logic188. The verify pulse logic 188 signal will become a logic "0" after theprovision of the normal pulse of the verify pulse grouping and willremain at logic "0" until after the provision of the verify pulse. Thenormally logic "1" output from high rate parameter NAND gate 138T inparameter decode logic 138 becomes logic "0" whenever the high rateparameter has been decoded and will remain as such until such time thatthe programmed high rate situation is over. Thus, in normalcircumstances the output of NAND gate 192B will be a logic "0" andtransmission gate 192A will not be conductive. However, if either theverify pulse or the high rate parameter situations are occurring, theoutput of the NAND gate 192B will become logic "1" and transmission gate192A will be closed to force the rate limit signal to logic "0"irrespective of the value of the signal applied from analog circuit 42.

Referring now to overflow logic 166 shown in FIG. 6M, there is includedeight input NAND gate 166A, having an output coupled to a three inputNAND gate 166B. NAND gate 166B has its output coupled to the data inputof latch 166C. The clock input of latch 166C is coupled to the slowclock logic 154 signal provided from the Q output of latch 154G. Thereset input of latch 166C is coupled to the Q output of latch 164A inrecharge logic 164. Thus, latch 166C is reset after each cardiacstimulating pulse is provided or natural beat is sensed. The Q outputfrom latch 166C is coupled as a second input to NAND gate 166B. Thethird input to NAND gate 166B is provided from the Q output of latch156H in slow counter 156. The Q output from each of latches 156A, 156Band 156D through 156H of slow counter 156 are applied as seven of theeight inputs to NAND gate 166A. The eight input to NAND gate 166A isprovided from the Q output of battery latch 162, which is normally alogic "0" signal. This maintains the output of NAND gate 166A at anormally logic "1" value regardless of the count contained by slowcounter 156. However, when battery latch 162A becomes reset as a resultof the battery voltage falling below a minimum value, the Q outputthereof becomes logic "1" and the output of NAND gate 166A becomes alogic "0" when slow counter 156 contains a count of 151, that is, whenall of the latches thereof, except latch 156C, are set.

NAND gate 166A is provided because when battery latch 162A becomes resetas a result of the battery voltage dropping, the rate of the slow clocksignal is decreased by approximately 10%. Hence, it is necessary tocompensate for this decrease in overflow logic 166A to maintain thesetting of latch 166D at a constant time of approximately 400 msec afterthe provision of the stimulating pulse.

Overflow logic 166 operates as follows. First, assuming that battery 44is providing an adequate voltage, gate 166A will provide a logic "1"output signal as a result of the logic "0" signal provided thereto fromthe Q output of battery latch 162A. At the time slow counter 156 is setto a count of 208 one slow clock cycle after the provision of thestimulating pulse, all of the signals applied to NAND gate 166B will belogic "1". Slow counter 156 increments its count after being set to thecount of 208, and forty nine slow clock logic 154 pulses later, each ofthe latches will be reset and slow counter 156 will recycle to a zerocount. At this point, the signal provided from the Q output of latch156H will go from logic "1" to a logic "0". At the time the Q outputfrom latch 156H becomes logic "0", the output from NAND gate 166Bbecomes logic "1" and on the next slow clock logic 154 pulse signalapplied to the clock input of latch 166C, latch 166C becomes set as aresult of the logic "1" now applied to the data input from NAND gate166B. Thus, approximately 400 msec after the provision of thestimulating pulse, or the detection of a natural beat, overflow latch166C is set.

If battery latch 162A had been reset, the output of NAND gate 166A wouldhave become logic "0" at the time slow counter 156 was at a count of251. The logic "0" from NAND gate 166A would be applied through NANDgate 166B to cause the output thereof to become logic "1" and the slowclock signal would then cause latch 166C to become set. In either case,once latch 160C is set, the Q output thereof becomes logic "0" and isapplied back to one input of NAND gate 166B to maintain the outputthereof at a logic "1". Hence, as subsequent slow clock pulses areapplied to the clock input of latch 166C, it will continue to be held inthe set condition.

Referring now to verify pulse logic 188 in FIG. 6I, there is includedtwo latches, 188A and 188B, NAND gates 188C and 188E and NOR gate 188D.The memory strobe signal from memory strobe gate 136A shown in FIG. 6Aand the DEMAND signal from inverter 138CC in parameter decode logic 138are applied as the two inputs to NAND gate 138E, the output of which isapplied to the clock input of latch 188A, the Q output of latch 188A isapplied back to its data input and the Q output from latch 188A isapplied to the data input of latch 188B. The Q output from latch 164A inrecharge logic 164 is applied to the clock input of latch 188B. The Qoutput from latch 188B is applied to the reset input of latch 188A andalso as one input to NAND gate 188C. The other input to NAND gate 188Cis coupled to the signal from the Q output of latch 169A in blank logic169, which signal is a normally logic "1" signal and becomes logic "0"upon the provision of the stimulating pulse and remains at logic "0" forapproximately 100 msec thereafter.

The Q output from latch 188B is provided as one input to NOR gate 188D.The other inputs to NOR gate 188D are taken from the Q output of latches152C and 152E in fast counter 152.

Verify pulse logic 188 operates in response to the provision of thememory strobe signal from memory strobe gate 136A in FIG. 6A except whenthe DEMAND parameter is permanently programmed. It should be recalledthat a logic "1" pulse is provided from memory strobe gate 136A only inthe event that a permanent programming signal has been accepted and isbeing written in the permanent memory. The memory strobe signal isapplied through NAND gate 188E, which is enabled by the normally logic"1" signal from the output of inverter 138CC in parameter decode logic138, to the clock input of latch 188A to set latch 188A, causing the Qoutput of latch 188A to provide a logic "1" signal. The logic "1" signalfrom the Q output of latch 188A is applied to OR gate 176C in R-syncgate logic and to gate 190A in Demand logic to cause the next pulse tobe delivered in an R-sync mode of operation. This is to insure that, inthe event natural cardiac activity is occurring, the verify pulse willnot be applied during the critical portion of the heartwave. The nextoccurring recharge logic 164 signal from the Q output of latch 164A thuscauses latch 188B to become set. The Q output from latch 188B, which atthis point is a logic "0" signal, enables NOR gate 188D to providepulses each time latches 152C and 152E of fast counter 152 are in a setcondition. It should be noted that since latch 188B is clocked by the Qoutput from latch 164A, in recharge logic 164, it is not set until afterthe provision of the stimulating pulse. When latch 188B is set, thelogic "1" Q output thereof resets latch 188A and enables NAND gate 188Cto provide a logic "0" pulse at its output for the blank time, or forapproximately 100 msec after the provision of the normal stimulatingpulse. The resetting of 188A also removes the R-sync mode of operation.

Referring now to digital rate limit logic 180, shown in FIG. 6M, thereis included NAND gate 180A, inverter 180B, NAND gate 180C, NAND gate180D, inverter 180E, and NAND gates 180F and 180G. The inputs to NANDgate 180A are provided from the output of hysteresis NAND gate 182A andfrom the output of NAND gate 188C in verify pulse logic 188. The outputof NAND gate 180A is coupled to one input of NAND gate 180F.

The inputs to NAND gate 180C are provided from the Q output of latch166C in overflow logic 166, and through inverter 180B from the ratelimit input pad. The output from NAND gate 180C is provided as one inputto NAND gate 180D. The other input to NAND gate 180D is provided fromthe output of inverter 180E, to which is provided the output of NANDgate 192B in gate circuit 192. The output of NAND gate 180D is providedto the other input of NAND gate 180F. The output from NAND gate 180F isprovided as one of the two inputs to NAND gate 180G. The other input toNAND gate 180G is provided from the output of NAND gate 176A in R-Syncgate 176. The output of NAND gate 176A is normally a logic "1" signaland becomes a logic "0" signal in response to the sensing of a naturalheartbeat signal after the refractory time, if pulse generator isprogrammed to operate in the R-Sync mode.

Under normal conditions, just after a stimulating pulse is provided bypulse generator 16, the analog rate limit circuit in analog circuit 42will cause a logic "1" signal to be provided to the rate limit pad for atime of approximately 462 msec and, in addition, latch 166C will bereset, and the Q output thereof will be logic "0". Thus, both of thesignals applied to NAND gate 180C will be logic "0" and output from NANDgate 180C will be a logic "1". As time passes, the analog rate limitsignal will become logic "0", and latch 166C will become set, causingthe two input signals to NAND gate 180C to become logic "1". Hence, theoutput of NAND gate 180C will become a logic "0" and cause the output ofNAND gate 180D to become a logic "1". This enables NAND gate 180F topass a logic "1" signal provided from NAND gate 180A to NAND gate 180G.

Under normal operation, the two inputs to NAND gate 180A will be logic"1" causing the output thereof to be a logic "0". At some point, thehysteresis gate output signal provided from NAND gate 182A to one inputof NAND gate 180 becomes logic "0", indicating that a stimulating pulseis to be provided. Similarly, if the verify pulse is to be provided, theoutput from NAND gate 188C provided to the other input of NAND gate 180Abecomes logic "0". When either of these signals become logic "0", theoutput of NAND gate 180A becomes logic "1", and both inputs to NAND gate180F are logic "1", causing the output thereof to become logic "0".This, in turn, causes a logic "1" signal to be provided from the outputof NAND gate 180H, which initiates the stimulating pulse in a manner tobe explained hereafter.

In the event that a logic "0" pulse is provided to NAND gate 180A priorto the expiration of either of the digital or analog rate limit times,and assuming that the output from NAND gate 192B is logic "0", theoutput from NAND gate 180D will be logic "0". Hence, the logic "1"output pulse from NAND gate 180A will not be passed by NAND gate 180F.However, once the two rate limit times pass and the output from NANDgate 180D becomes logic "1", NAND gate 180F becomes enabled by the NANDgate 180D and any logic "1" signal applied thereto from NAND gate 180Awill result in a logic "0" signal being provided from NAND gate 180F toNAND gate 180G, which in turn results in a logic "1" signal beingprovided from NAND gate 180G.

It should be recalled that the signal applied from hysteresis gate 182Ato NAND gate 180A originates at the Q output of latch 172M in ratedecode logic 172 and is continuously applied until the recharge logic164 signal occurs after the provision of a stimulating pulse or thesensing of a natural heartbeat. Thus, even though NAND gate 180F may bedisabled at the time a signal is applied from NAND gate 180A, the signalwill continue to be applied until the rate limit times expire. In thismanner, an upper rate is stabilized at the 130 bpm analog rate limitvalue, as opposed to many prior systems which merely ignore any signalwhich occurs prior to the expiration of the rate limit period.

In those situations where it is desirable to provide pulses at a rateexceeding the upper rate limit value, such as in the situation with ahigh rate parameter being programmed, or where it is necessary toprovide a verify pulse, the output from NAND gate 192B becomes logic"1", and inverter 180E causes a logic "0" signal to be applied to theother input of NAND gate 180D. This forces the output of NAND gate 180Dto be logic "1" and NAND gate 180F is enabled so that the pulsesprovided to NAND gate 180A are applied through NAND gate 180F as in thenormal manner of operation.

The output from NAND gate 180G in digital rate limit logic 180 isapplied to the set input of pre-resync latch 184A in FIG. 6K to initiatethe provision of the cardiac stimulating pulse control signal from pulsewidth logic 186. Pre-resync latch 184A is utilized to initiate a changein the source of the clock pulses from clock logic 158 to those from theVCO rather than those from the external oscillator and to resynchronizethe system timing to the new clock signal. It should be recalled thatthe VCO provides pulses at a rate of 40,000 hz as opposed to theexternal oscillator which provides pulses at a rate of 32,768 hz.Further, the rate of the VCO clock signal decreases in proportion to thedecrease in voltage provided by battery 44. Thus, it is necessary toboth restart and resync the pulse width control logic and the fastcounter to the change in pulses caused by the setting of latch 184A.

Pre-resync latch 184A, as previously mentioned, has the output of NANDgate 180G applied to the set input thereof. Latch 184A is of a type inwhich a logic "1" signal applied to the reset input overrides theeffects of a logic "1" signal applied to the set input. The reset inputof pre-resync latch 184A is coupled to the output of NAND gate 184Bwhich has three inputs respectively coupled to the Q output of latch186D in pulse width logic 186, the Q output of post-resync latch 187A,and the Q output of recharge logic latch 164A. Thus, pre-resync latch184A is reset upon the leading edge of the pulse width control signalprovided from pulse width logic 186, and maintained reset until afterthe recharge signal.

The Q output from latch 184A is provided through inverter 184C to theclock input of battery latch 162A to cause a check of the batteryvoltage. The data input of battery latch 162 is coupled to the BATTERYsignal which is logic "1" as long as the voltage from battery 44 isabove the minimum level. The battery check accomplished by clockingbattery latch 162A to the value of the BATTERY signal just prior to theprovision of a stimulating pulse from pulse generator 16 in order toignore any instantaneous drain on the battery due to the pulse. The setinput to battery latch 162A is coupled to the Q output of test latchflip-flop 130A to allow the battery latch 162A to be set each time atemporary program change occurs.

The output from inverter 184C in pre-resync logic 184 is also coupled toone input of NOR gate 158A in clock logic 158. The other input of NORgate 158A is coupled to the Q output from pulse width logic latch 186D.The output from NOR gate 158A is the VCO ENABLE signal, which isprovided to analog circuit 42 to enable the VCO therein to providepulses. Normally, this signal is a logic "1" as a result of the twonormally logic "0" signals applied to NOR gate 158A. However, whenpre-resync latch 184A is set and as long as pulse width logic latch 186Dremains set, the VCO ENABLE signal remains a logic "0", thereby allowingfor the provision of VCO pulses. The output from NOR gate 158A is alsoapplied to the control input of transmission gate 158B, which hasapplied thereto the XTAL external oscillator clock signal, and alsothrough inverter 158D to the control input of transmission gate 158C,which has applied thereto the VCO clock signal. The outputs oftransmission gates 158B and 158C are coupled together and provide theclock logic 158 clock signal. As long as the output of NOR gate 158A islogic "1", transmission gate 158B is enabled and the XTAL signal is theclock logic 158 clock signal. However, if the output from NOR gate 158Abecomes logic "0", transmission gate 158C is enabled and the clock logic158 clock signal becomes the VCO signal.

The Q output signal from pre-resync latch 184A is applied to one inputof NOR gate 186A in pulse width logic 186. Pulse width logic 186 alsoincludes NAND gate 186B, NAND gate 186C, latch 186D, NOR gate 186E andNAND gate 186F. Each of the gates 186A, 186B, 186C, 186E and 186F havetwo inputs and an output. The second input to NOR gate 186A is providedfrom the Q output of latch 154G in slow clock logic 154. The output ofNOR gate 186A is provided as one input to NAND gate 186B, the otherinput of which is coupled to the Q output of latch 186D. The output ofNAND gate 186B is provided as one input to NAND gate 186C. NOR gate 186Ehas applied thereto the output from NOR gate 188D in verify pulse logic188 and the output from inverter 157J in pulse width decode logic 157.The output of NOR gate 186E is applied to one input of NAND gate 186Fand the other input to NAND gate 186F is provided from the Q output oflatch 186D. The output of NAND gate 186F is provided as the other inputto NAND gate 186C and the output of NAND gate 186C is coupled to thedata input of latch 186D. The clock input to latch 186D is coupled tothe VCO clock signal provided from analog circuit 42.

Pulse width decode logic 157 includes EXCLUSIVE NOR gates 157A, 157B,157C, 157D, 157E, 157F, and 157G, each having two inputs and an output.The outputs of each of EXCLUSIVE OR gates 157A through 157G are eachcoupled to NOR gate 157H, the output of which is coupled to one input ofNAND gate 157I. The other input to NAND gate 157I is coupled to the Qoutput of latch 188B in verify pulse circuit 188. The output of NANDgate 157I is coupled through inverter 157J to NOR gate 186E in pulsewidth logic 186.

One input of each of EXCLUSIVE NOR gates 157B through 157G is coupled toa corresponding one of the six stages of the pulse width portion ofmemory 140. The Q output of latch 152G of fast counter 152 is coupled tothe other input to EXCLUSIVE NOR gate 157G; the Q output of latch 152Fis coupled to the other input of EXCLUSIVE NOR gate 157F; and the Qoutput of latch 152E is coupled to the other input of EXCLUSIVE NOR gate157E. The other inputs of EXCLUSIVE NOR gates 157B, 157C and 157D arerespectively coupled to the output of OR gates 157M, 157N and 157O andboth inputs to EXCLUSIVE NOR gate 157A are coupled to respective ORgates 157K and 157L. One input to each of OR gates 157K through 157O iscoupled to the VCO ENABLE signal from clock logic 158. The Q outputsfrom latches 152B, 152C and 152D are respectively coupled to the otherinputs of OR gates 157M, 157N and 157O, and the Q outputs of latches152A and 152B are coupled to the other inputs of OR gates 157K and 157L.

NOR gates 157K through 157O are each enabled by the VCO ENABLE signalbecoming logic "0" to allow EXCLUSIVE OR gates 157B through 157G tocompare the count of the second through seventh stages (latch 152Bthrough 152G) of fast counter 152 with the code in the pulse widthportion of memory 140. When a comparison occurs, and when the outputs ofeach of EXCLUSIVE OR gates 157A through 157G is logic "0", the output ofNOR gate 157H becomes logic "1". As long as NAND gate 157I is notdisabled by verify pulse logic latch 188B being set, the logic "1"signal from NOR gate 157H pass through NAND gate 157I and inverter 157Jto NOR gate 186E in pulse width logic 186.

In operation, pulse width logic latch 186D is set in response to thesetting of pre-resync latch 184A to define the leading edge of thestimulating pulse. After the programmed pulse width time has passed,latch 186D is reset and, hence, the output of latch 186D is a pulsewhich controls the time and duration of the cardiac stimulating pulse tobe provided by pulse generator 16. When pre-resync latch 184A and slowclock logic latch 154G are both set, both inputs to NOR gate 186A willbe logic "0" and a logic "1" will be applied at the output thereof. Thislogic "1" signal is applied to NAND gate 186B which, together with thelogic "1" from the Q output of latch 186D, provides a logic "0" to NANDgate 186C, thereby causing the output thereof to become logic "1". Uponthe occurrence of the next VCO signal applied to the clock input oflatch 186D, latch 186D becomes set causing the Q output thereof tobecome logic "1" and the Q output to become logic "0".

The output from NOR gate 188D in verify pulse logic 188 and the outputfrom inverter 157J in pulse width control logic 157 are applied as thetwo inputs to NOR gate 186E. Normally both of these signals are logic"0" and, hence, the output of NOR gate 186E is a logic "1". At the timelatch 186D becomes set and the Q output therefrom becomes logic "1",both inputs to NAND gate 186F are logic "1" causing the output thereofto be a logic "0". This maintains the output from NAND gate 186C at alogic "1", so latch 186D continues to be set each time a VCO signal isapplied thereto from clock logic 158.

After fast counter 152 has counted to a value equal to the valueprogrammed in the pulse width portion of memory 140, and the output fromeach of the EXCLUSIVE NOR gates 157A through 157G in pulse width controllogic 157 becomes logic "0", the output from inverter 157I becomes logic"1". This logic "1" is applied to NOR gate 186E and causes the outputthereof to become a logic "0", which in turn, causes the output of NANDgate 186F to become a logic "1", and the output of NAND gates 186C, tobecome a logic "0". Hence, latch 186D will be reset upon the occurrenceof the next VCO pulse applied thereto from clock logic 158. Thus, latch186 is set upon the occurrence of pre-resync latch 184 being set andreset upon the passage of the proper pulse width time.

In the event that a verify pulse is to be provided, the output from NORgate 188D becomes logic "1" after both latches 152C and 152E are reset.This causes the other input of NOR gate 186E to become logic "1" and thesame chain of events occurs to terminate the verify pulse. It should berecalled that the verify pulse was initiated by NAND gate 188C applyinga logic "0" signal to NAND gate 180A in digital rate limit logic 180.

The Q output from pulse width logic latch 186D is applied to the clockinput of post-resync latch 187A and the data input of latch 187A iscoupled to the voltage source to always receive a logic "1" signal. Theset input to post-resync latch 187A is coupled to the output of NOR gate176B in R-sync gate 176 which provides a logic "1" pulse signal whenevera natural heartbeat is sensed if the pacemaker is programmed in thedemand mode. The reset input to post-resync latch 187A is coupled to theQ output of recharge latch 164A.

The purpose of post-resync latch 187A is to resync the logic system tothe change in clock signals from the VCO clock to the XTAL externaloscillator clock in the event an artificial stimulating pulse isprovided and to cause the setting of the recharge latch 164A in theevent a natural heartbeat is detected or an artificial stimulating pulseis provided. Latch 187A is set in response to the trailing edge of thepulse width signal from latch 186D, that is, at the time latch 186D isreset, or in response to a logic "1" signal from NOR gate 176B whenevera natural heartbeat is sensed. The Q output from latch 187A is appliedthrough NAND gate 154E to cause an extra slo clock logic 154 pulse fromthe output of latch 154G. This, in turn, causes fast counter 152 to bereset to the count of zero, at the conclusion of the stimulating pulseor after a natural beat is sensed. The Q output from latch 187A is alsoapplied through NAND gate 184B to reset pre-resync latch 184A.

The Q output from post-resync latch 187A is applied to the data input ofrecharge latch 164 and the slow clock logic 154 signal is applied to theclock input of recharge logic 164A. Thus, recharge latch 164A is set bythe slow clock logic 154 pulse caused by the setting of post-resynclatch 187A and reset by the next slow clock logic 154 pulseapproximately 7.8 msec thereafter.

The Q output from recharge latch 164A is applied through inverter 164Bto become the RECHARGE signal applied to analog circuit 42, which allowsthe capacitor in the voltage doubler portion of analog circuit 42 to berecharged quickly. The Q output from recharge latch 164A is applied toreset post-resync latch 187A and to force set slow counter 156 to acount of 208, and to reset both rate decode latch 172M, and overflowlatch 166C.

The output control pulse from the Q output of latch 186D in pulse widthlogic 186 is a logic "1" pulse signal having a duration equal to theprogrammed pulse width. This signal is applied to one input of each ofNAND gates 178A and 178B in output logic 178. Output logic 178 alsoincludes inverters 178C, 178D and 178E with inverter 178D being coupledbetween the output of NAND gate 178A and the SINGLE output pad andinverter 178E being coupled between the output of NAND gate 178B and theDOUBLE output pad. Whenever a logic "1" pulse signal is applied to theSINGLE output pad and from there to analog circuit 42, a stimulatingpulse having a magnitude of battery 44 voltage is provided by pulsegenerator 16. Similarly, whenever a logic "1" pulse signal is providedto the DOUBLE output pad and from there to analog circuit 42, anartificial stimulating pulse is provided from pulse generator 16 havingdouble battery 44 voltage.

Also coupled to NAND gate 178B is the signal provided by the outputportion of memory 140. This same signal is provided through inverter178C to a second input of NAND gate 178A. Connected in this manner, ifthe data bits stored in the output portion of memory 140 is a logic "1",NAND gate 178B is enabled and the pulse width logic 186 signal isprovided to the DOUBLE output pad. On the other hand, if the data bitsstored by the output portion of memory 140 is a logic "0", NAND gate178A is enabled and the pulse width logic 186 signal is provided to theSINGLE output pad.

Whenever it is desired to inhibit the provision of output pulses, bothNAND gates 178A and 178B are disabled by a logic "0" inhibit signalprovided thereto from the Q output of latch 134C and inhibit logic 134,shown in FIG. 6C.

Referring now to FIG. 6N, blank logic 169, reversion and sense resetlogic 170 and refractory logic 168 will now be described. The primarypurpose of blank logic 169 is to provide to the BLANK output pad, alogic "0" pulse having a duration of 100 msec, measured from the leadingedge of an artificial stimulating pulse or from the sensing of a naturalheartbeat. The blank logic 169 pulse is provided from the BLANK outputpad to analog circuit 42 to cause the sense amplifier therein to bedisabled during this 100 msec time period, that is, to be incapable ofsensing any cardiac activity.

Blank logic 169 includes five input NAND gates 169B and 169C, threeinput NAND gates 169D, latch 169A, two input NOR gate 169E and inverters169F and 169G.

The inputs to NAND gates 169B are from the Q output of battery latch162A and the Q outputs from each of latches 156D, 156E, 156G and 156H ofslow counter 156. The inputs to NAND gate 169C are from the Q outputsfrom each of latches 156B, 156D, 156F, 156G and 156H of slow counter156. The outputs from each of NAND gates 169B and 169C are coupled astwo of the inputs to NAND gate 169B. The third input to NAND gate 169Dis coupled to the Q output from latch 169A. The output of NAND gate 169Dis coupled to the data input of latch 169A. The clock input of latch169A is the output of slow clock logic 154. The reset input into latch169A is coupled to the output of inverter 169F, which inverts the signalprovided from NOR gate 169E. The two inputs to NOR gate 169E areprovided respectively from the output of NOR gate 176B in R-sync gate176 shown in FIG. 6M, and the output from inverter 184C from pre-resynclogic 184 shown in FIG. 6K. The Q output from latch 169A is coupledthrough inverter 169G to the BLANK output path.

In operation, latch 169A is normally set so that the Q output is a logic"0" signal, which when applied back through NAND gate 169D maintains thesignal applied to the data input of latch 169A at logic "1". Thus, eachtime a slow clock logic 154 signal is provided to the clock input oflatch 169A, it is maintained in a set state. During this period of time,the signals applied to NOR gate 169E are normally both logic "0" andhence the output thereof is a logic "1", which when inverted by inverter169F provides a logic "0" signal to the reset input of latch 169A.Whenever an artificial stimulating pulse is to be provided, pre-resynclogic 184A is set, causing the output from inverter 184C to become logic"1". This, in turn, causes the output from NOR gate 169E to become logic"0" and the output of inverter 169F to become logic "1" and resets latch169A. Furthermore, if a natural heartbeat is sensed, the output from NORgate 176B in R-sync gate 176 becomes a logic "1", causing the output ofNOR gate 169E to become logic "0" and the output of inverter 169F tobecome logic "1" and reset latch 169A. Whenever latch 169A is reset by asignal from the output of inverter 169F, the Q output thereof becomeslogic "1". At this time, the outputs from both NAND gates 169B and 169Care also logic "1" and thus the output from NAND gate 169D becomes alogic "0". Subsequent slow clock logic 154 pulses maintain latch 169A ina reset condition.

Eventually, slow counter 156 will be incremented to a count such thatone of NAND gates 169B or 169C has all logic "1" signals applied to theinput thereof. The particular one of NAND gates 169B or 169C will dependupon whether battery latch 162A is set or reset. Whenever one of NANDgates 169B or 169C provides a logic "0" signal, the output of NAND gate169D will become logic "1" and the next occurring slow clock logic 154pulse will cause latch 169A to become set. With the Q output from latch169A being applied through NAND gate 169B, this set condition willcontinue until such time as latch 169A is again reset by a logic "1"signal from inverter 169F. It should be noted that the inputs to NANDgates 169B and 169C from the selected stages of slow counter 156 aresuch that a logic "0" output will occur from these particular gates at100 msec following a cardiac stimulating pulse or the detection of anatural heartbeat.

Refractory logic 168 is designed to allow a signal to be generated whichcauses reversion and sense reset logic 170 to ignore any sensed naturalcardiac activity for a set refractory time. The refractory time may beselected by the code contained in the refractory portion of memory 140to be either 220 msec, 325 msec, 400 msec or infinity. If infinity isselected as a refractory time, pulse generator 16 operates as anasynchronous pacemaker. This is the manner in which pulse generator 16can be programmed to operate in the synchronous mode.

Refractory logic 168 includes a pair of six input NAND gates 168A and168B having their outputs coupled as the inputs to a NAND gate 168C.Refractory logic 168 also includes two input NAND gate 168D, three inputNAND gates 168E and 168F, four input NAND gate 168G, a latch 168H andtwo inverters, 168I and 168J. NAND gate 168D is utilized to control the220 msec refractory time. NAND gate 168E is utilized to control the 325msec refractory time and NAND gate 168F is used to control the 400 msecrefractory time. The refractory 1 signal provided from the upper stageof the refractory portion of the memory 140 shown in FIG. 6E is appliedas one input to NAND gate 168F and through inverter 168I to NAND gates168D and 168E. The refractory 2 signal from the lower stage of therefractory portion of memory 140 is applied as one input to NAND gate168E and through inverter 168G to one input of NAND gates 168D and 168F.The output from NAND gate 168C is provided as the final input to NANDgate 168E and the overflow logic signal at the output of NAND gate 166Bin overflow logic 166 is provided as a third input to NAND gate 168F.The outputs of each of NAND gates 168D, 168E and 168F are provided toinputs of NAND gate 168G, together with the Q output from latch 168H.The output of NAND gate 168G is provided to the data input of latch 168Hand a slow clock logic 154 signal is provided to the clock input oflatch 168H. The reset input to latch 168H is the recharge logic 164signal from the Q output of latch 164A.

The inputs to NAND gate 168A are provided from the Q output of batterylatch 162A and from the Q outputs of latches 156B, 156E, 156F, 156G and156H of slow counter 156. The inputs to NAND gate 168B are provided fromthe Q outputs of latches 156B, 156C, 156E, 156F, 156G, and 156H of slowcounter 156. Connected in this manner, the outputs of NAND gates 168Aand 168B become logic "0" as a result of all logic "1" signals beingapplied thereto 325 msec after slow counter 156 is force set to thecount of 208 by the recharge signal. Latch 168B provides the signal solong as normal battery voltage is being provided and battery latch 168Ais maintained in the set condition. On the other hand, battery latch162A becomes reset 325 msec signals provided from the output of NANDgate 168A.

The particular one of NAND gates 168D, 168E, or 168F which can beenabled is determined by the code of the refractory 1 and refractory 2signals provided from the refractory portion of memory 140. If the codeof these signals, which manifests the code stored by the refractoryportion of memory 140, is "0--0", NAND gate 168D is enabled, and alwaysprovides a logic "0" signal. If the code is "0-1", NAND gate 168E isenabled and provides a logic "0" whenever NAND gate 168C provides alogic "1" signal thereto as a result of the passage of 325 msec asdetermined by NAND gates 168A and 168B. If the refractory signal code is"-0", the NAND gate 168F is enabled and provides a logic "0" signalwhenever the 400 msec time period has passed, as determined by overflowlogic 166. If the refractory code is "1--1", then none of the gates168D, 168E or 168F will ever be enabled and they will all continue toprovide logic "1" signals at their outputs. In this latter instance,NAND gate 168G will always provide a logic "0" signal at its output andlatch 168H can never be set by one of the slow clock logic 154 pulses.This will prevent any response to the sensing of natural cardiacactivity.

In operation, latch 168H in refractory logic 168 is reset by therecharge logic 164 signal from the Q output of latch 164A after eachartificial stimulating pulse is provided or after each natural beat isdetected. If NAND gate 168D is enabled by the refractory portion ofmemory 140, latch 168H will be immediately set, causing the Q outputthereof to become logic "1". If one of NAND gates 168E or 168F isenabled by the refractory portion of memory 140, all of the signalsprovided to NAND gate 168G are logic "1", and the output thereof islogic "0". Latch 168H is thus maintained in a reset condition by slowclock logic 154 pulse until the selected one of NAND gates 168E or 168Fprovides a logic "0" signal to one of the inputs to NAND gate 168G afterthe selected period of time. At this point the output of NAND gate 168Gbecomes logic "1" and upon the next occurring slow clock logic 154pulse, latch 168H becomes set, causing the Q output thereof to becomelogic "1" and the Q output theeof to become logic "0". With the Q outputbeing applied back through NAND gate 168G, latch 168H is maintained in aset condition, until it is again reset by a recharge logic 164 signal.

Referring now to reversion and sense reset logic 170, the SENSE signalfrom analog circuit 42 is provided and if it occurs at a proper time,latch 170A is set to indicate that a natural heartbeat has beendetected. Reversion and sense reset logic 170 includes a reversioncounter consisting of latches 170B, 170C, 170D, 170E and 170F, eachhaving its Q output coupled back to its data input and each having itsclock input coupled to the Q output of the preceding stage. In the caseof latch 170B, the clock input is coupled to the output of NOR gate170G, which has as its inputs the outputs from NOR gate 170H and a slowclock logic 154 signal from the Q output of latch 154G. NOR gate 170Hhas applied to its four inputs the Q outputs from each of latches 170B,170C, 170E and 170F. Lastly, the reset inputs to each of latches 170Bthrough 170F are coupled to the output from NAND gate 170I, whichprovides a logic "1" signal each time natural cardiac activity is sensedor a recharge signal is provided from the Q output of latch 164A.

Connected in the manner described above, latches 170B through 170F andNOR gates 170G and 170H form a 212 msec resettable monostablemultivibrator. Whenver latches 170B through 170F become reset as aresult of a logic "1" signal from NAND gate 170I, the output of NOR gate170H becomes logic "0" and enables NOR gate 170G to pass the slow clocklogic 154 signals. These signals are counted by the counter formed bylatches 170B through 170F until such time as latches 170B, 170C, 170Eand 170F are all set and latch 170D is reset, which takes approximately220 msec, from the time the counter was last reset. The additional 8msec is caused by an extra SLO CLK interval being added as a result ofthe recharge signal resetting the counter. At this point, the output ofNOR gate 170H becomes logic "1" as a result of each of its inputs beinglogic "0" and this, in turn, disables NOR gate 170G from passing anyfurther slow clock logic signals. Hence, the counter formed by latches170B through 170F stops counting. However, if prior to the passage ofthe 220 msec time period, a logic "1" signal has been provided at theoutput of NAND gate 170I, latches 170B through 170F would have beenreset and another 212 msec would be required before NOR gate 170Hprovided a logic "1" signal.

Reversion and sense reset logic 170 also includes six input NAND gate170J, to which is applied the Q output of each of latches 170B through170F and the slow clock logic 154 signal from the Q output of latch154G. Connected in this manner, NAND gate 170J provides a logic "0"signal coincident with the slow clock logic 154 signal each time thecounter formed by latches 170B through 170F is reset. The output fromNAND gate 170J is applied as one input to NAND gate 170K, the otherinput of which is provided from the Q output of latch 169A in blanklogic 169. The output of NAND gate 170K is provided to the reset inputof latch 170L. The data input to latch 170L is connected to batteryvoltage or a logic "1" signal. The clock input to latch 170L isconnected to the output of NOR gate 170M, one input of which has appliedthereto the SENSE signal from analog circuit 42 and the other input ofwhich has applied thereto the signal from the output of NOR gate 190A indemand logic 190. Normally, the output of NOR gate 190A is a logic "0"signal and maintains NOR gate 170M enabled

The Q output from latch 170L is provided as one input to NAND gate 170I.The other input to NAND gate 170I is the recharge logic 164 signalprovided from the Q output of latch 164A. Connected in this manner, NANDgate 170I provides a logic "1" signal at its output to reset thereversion counter whenever either latch 170L becomes set as a result ofthe provision of a sense signal or whenever a recharge signal isprovided from recharge logic 164 as a result of the provision of a pulsewidth logic 186 signal or the sensing of natural cardiac beat.

The Q output from latch 170L is applied to the clock input of latch170A, and the data input to latch 170A is coupled to the output of NANDgate 170N, which has the output from NOR gate 170H applied to one inputthereof and the output of refractory logic latch 168H applied to theother input thereof. The set input to latch 170A is coupled to therecharge logic 164 signal from the Q output of recharge latch 164A. Eachtime an artificial beat is provided or natural activity is sensed andthe recharge signal is provided from recharge logic 164, latch 170A isforced set, causing the Q output thereof to become a logic "1" and the Qoutput thereof to become logic "0". The only manner in which latch 170Acan become reset is by the data input signal from NAND gate 170Nbecoming logic "0" prior to the time that the SENSE signal is providedthrough NOR gate 170M to set latch 170L. In order for the data input oflatch 170A to become logic "0", both inputs to NAND gate 170N must belogic "1". Thus, the reversion counter consisting of latches 170Bthrough 170F must have counted past the 212 msec time period, and, inaddition, latch refractory logic 168H must be set as a result of thepassage of the selected refractory time period. If after both of thesetime periods have passed, the SENSE signal is provided from a senseamplifier in analog circuit 42, latch 170L becomes set, causing the Qoutput thereof to become logic "1". This, in turn, clocks the logic "0"signal from NAND gate 170N into latch 170A, causing the Q output thereofto become logic "0" and the Q output thereof to become logic "1". The Qoutput from latch 178 is provided to hysteresis logic 174 to resetlatches 174H and 174J therein in the manner previously explained.

With respect to reversion and sense reset logic 170, it should be notedthat if gate 168D in refractory logic 168 is selected by the code of therefractory portion of memory 140, latch 168H will always be set and onlythe 220 msec time from reversion counter 170D would control therefractory time. Thus, there would have been selected a 220 msecrefractory time. It also should be noted that if an infinite refractorytime is selected by the code of the refractory portion of memory 140,latch 168H can never be set and hence the output from NAND gate 170N cannever become logic "0". In this situation, latch 170A can never be resetto indicate the sensing of natural cardiac activity. Hence, pulsegenerator 16 would operate in an asynchronous mode.

It should also be noted that in the event natural cardiac activity issensed prior to the expiration of the 220 msec timeout period of thereversion counter formed by latches 170B through 170F the reversioncounter will be reset and another 212 msec time period will be required.This feature becomes important in the event that there is a continuousinterference signal being detected by the sense amplifier within analogcircuit 42. If this continuous interference has a frequency greater thanapproximately five hz, the reversion counter formed by latches 170Bthrough 170F will continually be reset and never be able to count to the212 msec time period. Hence, NOR gate 170H will never provide a logic"1" signal to allow NAND gate 170N to be able to provide a logic "0"signal. Hence, pulse generator 16 will be operate into the asynchronousmode, or as is more commonly referred to, will be reverted to theasynchronous mode due to the presence of the continuous wave of externalinterference signal.

Referring now to R-sync gate 176 shown in FIG. 6M, there is includedNAND gate 176A, NOR gate 176B and OR gate 176C, each having two inputsand an output. One of the inputs of each of NAND gate 176A and NOR gate176B is coupled to the output of OR gate 176C, which has the R-syncportion of memory 140 and the Q output of latch 188A in verify pulselogic 188 coupled thereto. If the R-sync portion of memory 140 or the Qoutput of latch 188A provides a logic "1" signal, OR gate 176C providesa logic "1" signal to enable NAND gate 176A to cause pulse generator 16to operate in the R-synchronous mode. If the R-sync portion of memoryprovides a logic "0" signal and latch 188A is not set, NOR gate 176B isenabled to allow pulse generator 16 to operate in the demand mode. Theother input of NAND gate 176A is coupled to the Q output of latch 170Ain reversion and sense reset logic 170 and the other input to NOR gate176B is coupled to the Q output of latch 170A. If NAND gate 176A isenabled, the R-synchronous mode of operation is programmed and thus,each time a SENSE signal is provided and latch 170A is set, a logic "0"will be provided from NAND gate 176A to NAND gate 180G in digital ratelimit circuit 180 to cause a cardiac stimulating pulse to be provided inthe manner previously described. On the other hand, if NOR gate 176B isenabled by a logic "0" signal from the R-sync portion of memory 140,manifesting a demand mode of operation, each time latch 178A is set as aresult of the sensing of natural cardiac activity, a logic "1" signalwill be applied from NOR gate 170B to set post-resync logic latch 187Ato cause the recharge signal to be provided to reset slow counter 156and begin a timeout period for a new pulse. If latch 188A is set, theextra verify pulse and the pulse preceding it will occur in the R-syncmode to insure that the venerable portion of the heart cycle is notpulsed.

Referring now to demand logic 190, shown in FIG. 6I, there is includedsix input NOR gate 190A, two input NOR gate 190B, latch 190C andinverter 190D. The purpose of demand logic 190 is to control the mode ofthe pacemaker during the time reed switch 46 is closed. Normally, pulsegenerator 16 operate in the asynchronous mode whenever reed switch 46 isclosed. However, in certain situations, especially while a physician iscontinually programming the pacemaker to perform certain diagnostictests, it may be desired to operate pulse generator 16 in the demandmode. Additionally, it would be expected to be necessary to operatepulse generator 16 in a demand mode whenever certain parameters arebeing programmed, such as SENSITIVITY, R-SYNCHRONOUS and REFRACTORY inthe temporary mode, since these parameters are dependent upon the properoperation of the sense amplifer.

Latch 190C has provided to its data input the output from stage 132-8 oftemporary memory 132, or in other words, the least significant bit ofthe data portion of the programming word. The output from NAND gate132L, manifesting the permanent DEMAND parameter, is provided throughinverter 190D to the clock input of latch 190C and the Q output fromreed switch latch 159A in reed switch logic 159 is provided to the setinput of latch 190C, as well as to one input of NOR gate 190A. The Qoutput from latch 190C isalso provided as one input to NOR gate 190A.The output from stage 132-8 of temporary memory 132 is also provided asone input to NOR gate 190B. The other input to NOR gate 190B is providedfrom the output from NAND gate 138BB in parameter decode logic 138,which is the temporary DEMAND parameter output. The output of NOR gate190B is provided as a third input to NOR gate 190A. The other threeinputs to NOR gate 190A are coupled to the temporary REFRACTORY signal,the temporary SENSITIVITY signal and the temporary R-SYNCHRONOUS signalsprovided from parameter decode logic 138 through inverters included inmemory 140.

In operation, when reed switch 46 is in its normally opened position,the output of NOR gate 190A is a logic "0" and maintains NOR gate 170Min reversion and sense reset logic 170 enabled. When reed switch 46becomes closed and latch 159A set, causing the Q output thereof tobecome logic "0", NOR gate 190A provides a logic "1" signal if all ofthe other signals applied thereto are a logic "0". This would normallybe the case, unless one of the REFRACTORY, SENSITIVITY or R-SYNCHRONOUSparameters are being programmed in the temporary mode, so as to causethe temporary REFRACTORY, temporary SENSIVITY and temporary R-SYNCsignals to become logic "1". Also, if the temporary DEMAND parameter isbeing programmed and the eighth data bit is a logic "0" indicating theDEMAND mode, NOR gate 190B will provide a logic "1" signal, and hencethe output of NOR gate 190A will be logic "0". Finally, if the permanentDEMAND parameter is being programmed and the eighth data bit is a logic37 0", indicating a demand mode, latch 190C will be reset, causing the Qoutput thereof to become logic "1", which in turn causes the output ofNOR gate 190A to become logic "0".

It should be noted that the programming of the permanent demand featureis in fact only a semi-permanent situation in that it only lasts as longas the reed switch is closed, whereas the permanent programming of otherparameters lasts until they are subsequently changed.

Referring now to reed switch logic 159 shown in FIG. 6M, there isincluded latch 159A and inverter 159B. The reed switch signal which isnormally a logic "0" when reed switch 46 is open and a logic "1" whenreed switch 46 is closed, is applied to the data input of latch 159A andthrough inverter 159B to the reset input of latch 159A. The clock inputto reed switch logic 159A is coupled to the output of inverter 169F inblank logic 169. Thus reed switch latch 159A is clocked each time astimulating pulse is to be provided or a natural heartbeat is detected.If reed switch 46 is closed, latch 159A is clocked into a set condition,causing the Q output thereof to become logic "1" and the Q outputthereof to become logic "0", and if reed switch 46 is open, latch 159Ais reset immediately through inverter 159B.

What is claimed is:
 1. A programmable demand cardiac pacemaker pulsegenerator having remotely programmable rate hysteresis comprising:outputterminals adapted to coupled stimulating pulses to and receive signalsfrom the heart; triggerable output circuit means for generatingstimulating pulses at said output terminals; sense amplifier meansresponsive to heart signals at said output terminals for providing asense signal; clock means for providing repetitive clock signals;resettable counting means for counting said clock signals between sensesignals or stimulating pulses; bistable means capable of being triggeredto a first state in response to a sense signal and to a second state inresponse to the triggering of said output circuit means for providing afirst or second respective state signal; program storage meansresponsive to signals provided external from said pulse generator forreceiving and storing a code manifesting desired modes of operation ofsaid pulse generator, one of said modes being the hysteresis mode ofoperation, and for storing, when said hysteresis mode code is receivedand stored, a further code manifesting one hysteresis count value of aplurality of possible hysteresis count values and pacing rates and acode manifesting one demand count value, independent of the unrelated tothe manifested hysteresis count value, of a further plurality ofpossible demand count values and pacing rates; first decoding meanscoupled to said counting means and said program storage means forproviding a first decoding means signal when the count of said countingmeans matches said demand count value and responsive to said secondstate signal for coupling said first decoding means signal to saidtriggerable output circuit means for generating stimulating pulses at ademand pacing rate; and second decoding means coupled to said countingmeans and said program storage means for providing a second decodingmeans signal when the count of said counting means matches saidhysteresis count value and responsive to said first state signal forcoupling said second decoding means signal to said triggerable outputcircuit means for generating stimulating pulses at a hysteresis pacingrate; whereby the pulse generator may be programmed to operate at one ofa plurality of unrelated and independent possible demand and hysteresispacing rates.
 2. The invention according to claim 1 wherein saidcounting means is reset each time said output signal is provided to saidoutput terminals or said sense amplifier means signal is provided. 3.The invention according to claim 2 wherein said bistable means includesa flip-flop circuit having set and reset inputs and means coupling saidsense amplifier means signal to one of said inputs.
 4. The inventionaccording to claim 1 wherein said second decoding means signal isprovided to trigger said bistable means to said second state.
 5. Theinvention according to claim 4 wherein said counting means is reset eachtime said output signal is provided to said output terminals, or saidsense amplifier means signal is provided.
 6. The invention according toclaim 4 wherein said bistable means includes a flip-flop circuit havingset and reset inputs and means coupling said sense amplifier meanssignal to one of said inputs and said second decoding means signal tothe other of said inputs.
 7. The invention according to claim 1 whereinsaid second decoding means includes second bistable means which is setby said second decoding means, said first bistable means responding tosaid second bistable means being set by being triggered to said secondstate.
 8. The invention according to claim 7 wherein said secondbistable means includes control and clock inputs and an output, saidoutput providing a signal of a value equal to the value of the signalapplied to the control input in response to a value change in the signalapplied to the clock input, said second decoding means signal beingapplied to said control input and said clock means signal being appliedto said clock input and said output being coupled to said first bistablemeans to trigger said first bistable means to said second state.
 9. Theinvention according to claim 7 wherein said storage means is responsiveto an externally applied programming signal for providing a signalmanifesting the desired ones of selected variable parameters within saidpulse generator, said parameters including said hysteresis pacing ratein the event said pulse generator is to exhibit a hysteresis effect;andwherein said bistable means includes means responsive to a programstorage means signal manifesting that said pulse generator is to exhibitno hysteresis effect for maintaining said bistable means in said secondstate, regardless of the provision of said sense signal.
 10. Theinvention according to claim 13 wherein said second decoding meansincludes a plurality of gates each capable of being enabled to provide asignal at a different count of said counting means, one of said gatesbeing enabled by said hysteresis mode code if said pulse generator is toexhibit a hysteresis effect, and none of said gates being enabled bysaid hysteresis mode code if said pulse generator is to exhibit nohysteresis effect.
 11. A programmable demand cardiac pacemaker pulsegenerator having remotely programmable rate hysteresis comprising:outputterminals adapted to provide stimulating signals to and receive signalsfrom the heart; output circuit means for generating stimulating pulsesat said output terminals; sense amplifier means responsive to heartactivity signals at said output terminals for providing a sense signal;program storage means responsive to signals provided external from saidpulse generator for receiving and storing a code manifesting desiredmodes of operation of said pulse generator, one of said modes beingwhether said pulse generator is to operate under hysteresis conditions,and for storing, when said hysteresis mode code is received and stored,a further code manifesting one hysteresis pacing rate of a plurality ofpossible hysteresis pacing rates and a code manifesting one demandpacing rate, independent of and unrelated to the manifested hysteresispacing rate, of a further plurality of possible demand pacing rates; anddigital timing means, responsive to said sense amplifier signals andsaid program storage means code for causing said output circuit means toprovide a cardiac stimulating signal to said output terminals inaccordance with the desired mode and pacing rate manifested by saidcodes, and including hysteresis means operatively enabled by saidfurther code of said program storage means and responsvie to said sensesignal for causing said cardiac stimulating signals to be provided underhysteresis conditions at one of said plurality of possible hysteresispacing rates independent of and unrelated to the programmed demandpacing rate.
 12. The invention according to claim 11 wherein in theevent said hysteresis means is operatively enabled by said further codeof said program storage means, successive cardiac stimulating signalsare separated by a first interval in the absence of an interveningsensed natural heart activity signal and a cardiac stimulating signal isseparated from a sensed natural heart activity signal by a longer secondinterval in the event no sensed natural heart activity signal isprovided during said longer second interval.
 13. The invention accordingto claim 11 wherein:said digital timing means includes clock means forproviding a series of clock pulses, resettable counting means forcounting each provided clock pulse, first decoding means coupled to saidcounting means and said program storage means for providing a firstsignal whenever the count of said counting means reaches a first value,and second decoding means coupled to said counting means and saidprogram storage means for providing a second signal whenever the countof said counting means reaches a higher second value; and first gatemeans responsive to said first decoding means for providing said firstsignal to said output circuit means; second gate means responsive tosaid second decoding means and a hysteresis code stored in said storagemeans for providing said second signal to said output circuit means; andbistable means coupled to inhibit said first gate means from providingsaid first output signal whenever said bistable means signal is in afirst state.
 14. The invention according to claim 11 or 12 wherein saiddigital timing means further comprises:clock means for providingrepetitive clock signals; resettable counting means for counting saidclock signals between sense signals or stimulating pulses; bistablemeans capable of being triggered to a first state in response to a sensesignal and to a second state in response to the triggering of saidoutput circuit means for providing a first or second respective statesignal; first decoding means coupled to said counting means forproviding an output signal at a first predetermined count of saidcounting means and responsive to said second state signal for couplingsaid output signal to said triggerable output circuit means forgenerating stimulating pulses at a first pacing rate; and seconddecoding means coupled to said counting means for providing said outputsignal at a second predetermined count of said counting means, andresponsive to said first state signal for coupling said output signal tosaid triggerable output circuit means for generating stimulating pulsesat a second pacing rate; and said program storage means is adapted toreceive programming instructions and store program data in responsethereto for establishing the first and second predetermined counts.